• ベストアンサー

子フォームから親フォームのオブジェクトを参照したい。

こんばんわ。 いまVB.Net2005でプログラミングしている者です。 子フォームから親フォームのオブジェクトを参照したいのですが, うまくいきません。 親フォームにListBox1を置き, ここに入力された内容を 子フォームで下記のように参照しようとしました。 Dim 子フォーム As New 子フォーム Label1.Text = 親フォーム.ListBox1.SelectIndex としたのですが, 親フォームでListBox1に0以外のリストを選択したのに, 子側に来ると親フォーム.ListBox1.SelectIndexの値が 0になってしまい,親側での選択内容が反映されません。 どうすれば正しく参照できるでしょうか? 教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • don_go
  • ベストアンサー率31% (336/1059)
回答No.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

tatsurou
質問者

お礼

don_goさん 回答ありがとうございました。 わかりやすく教えて頂きましてありがとうございます。 教えて頂いた方法で実現できました(^_^)

その他の回答 (2)

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

don_goさんも言われているとおり、親フォームから子フォームに 値を渡すのが良いかと思います。 具体的には、子フォームインスタンス作成時にコンストラクタ 引数に親フォームを指定できるようにするか、 子フォームに独自のプロパティを実装して、親フォームを参照 できるようにするとかです。

tatsurou
質問者

お礼

unamana19さん 回答ありがとうございました。 参考にさせて頂きます。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.1

子フォームから親フォームを参照するのではなく 親フォームの方から子フォームに値を渡す様に すべきです。 でないと子フォームが複数のフォームから呼ばれる 様な場合、参照する親フォームのみが異なる他は 全く同じ子フォームを作らざるを得なくなります。

tatsurou
質問者

お礼

don_goさん 回答ありがとうございました。 参考にさせて頂きます。

関連するQ&A

専門家に質問してみよう