dポイントプレゼントキャンペーン実施中!

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/04 22:11

don_goさんも言われているとおり、親フォームから子フォームに


値を渡すのが良いかと思います。

具体的には、子フォームインスタンス作成時にコンストラクタ
引数に親フォームを指定できるようにするか、
子フォームに独自のプロパティを実装して、親フォームを参照
できるようにするとかです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/04 22:10

子フォームから親フォームを参照するのではなく


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

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

お礼日時:2008/02/04 22:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A