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

Form1とForm2の相互参照について

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

こんにちは。FITOです。

今日は基本的な質問があります。
現在.NETで開発中のプログラムで、Form1とForm2があるのですが、
Form1の中のボタンをクリックするとForm2が開きます。
Form2はチェックボックスが並び、Form2の中のボタンをクリックすると
チェックボックス状態を取得してForm2は閉じます。
Form2が閉じた時にチェックボックス状態をForm1は見にいって
自分のテキストボックスフィールドに関連する値を出したいのですが。
どうやって見にいけば良いのでしょうか。。
オブジェクト参照は片方向しか無理ですよね・・?!

宜しくお願いいたします。
Dim disp as Form2
try
disp = new Form2()
disp.ShowDialog()
Debug.Write(disp.IsAChecked)
Debug.Write(disp.IsBChecked)
finally
if ( not disp is nothing ) then
form2.dispose()
end if
end try

Form2.vb
Public property readonly IsAChecked() as boolean
get
return me.CheckBoxA.Checked
end get
end property
じゃんぬねっと です。

■No9113に返信(FITOさんの記事)
> Form2が閉じた時にチェックボックス状態をForm1は見にいって
> 自分のテキストボックスフィールドに関連する値を出したいのですが。
> どうやって見にいけば良いのでしょうか。。
> オブジェクト参照は片方向しか無理ですよね・・?!

呼び出した側から、取得すれば良いだけではないでしょうか?
何故「相互参照」なる言葉が出てくるのでしょう...

' btnShowSub をクリックした時
Private Sub btnShowSub_Click(...) Handles btnShowSub.Click
    Dim hFormSub As New FormSub()

    If hFormSub.ShowDialog() = DialogResult.OK Then
        MessageBox.Show(hFormSub.CheckBox1.Checked.ToString())
    End If

    hFormSub.Dispose()
End Sub

# 参照
# http://jeanne.wankuma.com/tips/form/06-closingbutton.html
ありがとうございます!解決です!

■No9115に返信(中 博俊さんの記事)
> Dim disp as Form2
> try
> disp = new Form2()
> disp.ShowDialog()
> Debug.Write(disp.IsAChecked)
> Debug.Write(disp.IsBChecked)
> finally
> if ( not disp is nothing ) then
> form2.dispose()
> end if
> end try
>
> Form2.vb
> Public property readonly IsAChecked() as boolean
> get
> return me.CheckBoxA.Checked
> end get
> end property
>
解決済み!

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