- ベストアンサー
子フォームから親フォームのオブジェクトを参照したい。
こんばんわ。 いまVB.Net2005でプログラミングしている者です。 子フォームから親フォームのオブジェクトを参照したいのですが, うまくいきません。 親フォームにListBox1を置き, ここに入力された内容を 子フォームで下記のように参照しようとしました。 Dim 子フォーム As New 子フォーム Label1.Text = 親フォーム.ListBox1.SelectIndex としたのですが, 親フォームでListBox1に0以外のリストを選択したのに, 子側に来ると親フォーム.ListBox1.SelectIndexの値が 0になってしまい,親側での選択内容が反映されません。 どうすれば正しく参照できるでしょうか? 教えてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
’親フォーム Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim NewForm As New Form2() NewForm.ListName = "12345" '親フォームの値を子フォームに渡す NewForm.ShowDialog() '子フォームを表示 MsgBox(NewForm.ListName) '子フォームから値を受け取る End Sub End Class '子フォーム Public Class Form2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Public Property ListName() As String Get Return TextBox1.Text End Get Set(ByVal value As String) TextBox1.Text = value End Set End Property End Class
その他の回答 (2)
- unamana19
- ベストアンサー率62% (56/89)
don_goさんも言われているとおり、親フォームから子フォームに 値を渡すのが良いかと思います。 具体的には、子フォームインスタンス作成時にコンストラクタ 引数に親フォームを指定できるようにするか、 子フォームに独自のプロパティを実装して、親フォームを参照 できるようにするとかです。
お礼
unamana19さん 回答ありがとうございました。 参考にさせて頂きます。
- don_go
- ベストアンサー率31% (336/1059)
子フォームから親フォームを参照するのではなく 親フォームの方から子フォームに値を渡す様に すべきです。 でないと子フォームが複数のフォームから呼ばれる 様な場合、参照する親フォームのみが異なる他は 全く同じ子フォームを作らざるを得なくなります。
お礼
don_goさん 回答ありがとうございました。 参考にさせて頂きます。
お礼
don_goさん 回答ありがとうございました。 わかりやすく教えて頂きましてありがとうございます。 教えて頂いた方法で実現できました(^_^)