DOBON.NET DOBON.NETプログラミング掲示板過去ログ

子フォームから親フォームの操作

環境/言語:[VB.NET]
分類:[.NET]

子フォームから親フォームのツールバーを操作したのですが、出来ません…
VB6.0だと簡単にできたのに、VB.NETになるとできません。どうしたら良いのでしょうか?

例えば、子フォームから親フォームのツールバーのボタンを押している状態(PushedをTrue)に。
知ってる方がいたら、よろしくお願いします。
初心者なものでm(__)m
■No3137に返信(みきさんの記事)
> 子フォームから親フォームのツールバーを操作したのですが、出来ません…
> VB6.0だと簡単にできたのに、VB.NETになるとできません。どうしたら良いのでしょうか?
>
> 例えば、子フォームから親フォームのツールバーのボタンを押している状態(PushedをTrue)に。
> 知ってる方がいたら、よろしくお願いします。
> 初心者なものでm(__)m

まずは、親フォームのツールバーをパブリックにして、
あとは、親フォーム自体のオブジェクトを取得して、そのツールバーをいじくればいいんじゃないですか?
> 子フォームから親フォームのツールバーを操作したのですが、出来ません…
> VB6.0だと簡単にできたのに、VB.NETになるとできません。どうしたら良いのでしょうか?
VB6風にするならば、ToolBarをPublicで定義します。
プロパティウィンドウからは、ModifiersにPublicを選択するとよいでしょう。
あ、すみません。かぶりましたね。
りょうさん、 Sugi@ぱぱんぶぃびぃさん
ありがとうございます(^^)


言われたとうりに、Form2で

Dim fm As New Form1()
fm.ToolBarButton1.Pushed = True

としているのですが、上手くいきません…
いつもはROMなのですが、私にも分かりそうな内容なので書き込ませて頂きます。
文中の説明に間違いがありましたら、ご指摘お願いたします。

> Dim fm As New Form1()
> fm.ToolBarButton1.Pushed = True
このソースだと
Form2上で新しいForm1オブジェクトを作成し、
それを表示しないでツールバーを操作している
という動作になってしまいますよ。

Form1からForm2を表示するときにまず
>Dim f2 as New Form2
というふうに記述されているかと思いますが
その後フォームを表示するのに
Showメソッド、ShowDialogメソッドのどちらを使用されているでしょう?
ShowDialogメソッドの場合には
>f2.ShowDialog(Me)
Showメソッドの場合には
>f2.Owner=Me
>f2.show
と記述する事で「Form1がForm2の親フォームですよ」と指定して表示する事ができます。

あとはForm2に記述する内容ですが、例えばForm1上のテキストボックス"tbxTest"に
「成功!」と表示させたい場合
>Ctype(Me.Owner,Form1).tbxText.Text="成功!"
と記述する事で実現できます。

各プロパティ、メソッドについてはヘルプを参照していただき
上記参考にしていただければと思います。

私もVB.NETを触り初めて半年、まだまだ「???」の状態です。
お互いがんばりましょう。
なおやさん、ありがとうございます。

言うとおりに、やってみたら出来ました(^^)
詳しく書いていただき勉強になりました。
まだ触り始めたばかりなので分からない事ばっかりです(><)

また、分からないことがあったらお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板