フォーム間の値の受け渡し
■値を渡すフォームを開く側
'---passRecValueを授受する値とする。
Dim passRecValue as ClassTest
’---passRecValueに渡す値をセット
passRecValue =渡し元Formでの処理
'---RecFormを渡し先Formとする。このメソッドの戻り値で
’---渡し先Formで処理された値を受け取る
passRecValue = RecForm.ShowForm(passRecValue)
■値を受けるフォーム
Public Class RecForm
’---受けとり戻す値をセットする変数をPrivateで定義しておく
Private _returnValue As ClassTest
’---Sharedでフォームを開くメソッドを定義しておく
’---このメソッドの戻り値で、返す値を返す
Public Shared Function ShowForm(Optional ByVal recVal As ClassTest= Nothing) As ClassTest
Dim frm As RecForm= New RecForm
’---授受用の変数に受け取った値をセット
frm ._returnValue = recVal
frm .ShowDialog() '---①
'---返す値を変数に退避(返す前にFormをDisposeする為)
Dim receive As ClassTest= frm ._returnValue
frm .Dispose()
Return receive
End Function
’---フォームを閉じるタイミングなどで_returnValueをセット
Private Sub BtnClose_Click(sender As Object, e As EventArgs) Handles
BtnClose.Click
_returnValue = 受け先Formでの処理
Me.Close()'---②
End Sub
(*)①のタイミングで渡し先Form内の処理に移り
②実行後に①の処理に戻る。