と の両方に対する要件に基づいて、最良の解決策は を使用することだreturn a value
とcall a procedure on the calling form
思いますEvents
。概念を示すために簡単な例を見ていきます。
この例では、Parent Form
と がありChild Form
、各フォームに と があるButton
としTextBox
ます。
- 親フォームのボタンをクリックすると、子フォームが生成され、その ValueChanged イベントに登録されます。
- 子フォームのボタンをクリックするとイベントが発生し、その TextBox の値がイベントを購読しているすべての人に渡されます。
のコードは次のParent Form
とおりです。
Public Class ParentForm
Private Sub ParentButton_Click(sender As System.Object, e As System.EventArgs) Handles ParentButton.Click
Dim child As New ChildForm
AddHandler child.ValueChanged, AddressOf ChildFormValueChanged
child.Show()
End Sub
Private Sub ChildFormValueChanged(ByVal NewValue As String)
ParentTextBox.Text = NewValue
End Sub
End Class
のコードは次のChild Form
とおりです。
Public Class ChildForm
Public Event ValueChanged(ByVal NewValue As String)
Private Sub ChildButton_Click(sender As System.Object, e As System.EventArgs) Handles ChildButton.Click
RaiseEvent ValueChanged(ChildTextBox.Text)
End Sub
End Class
AddHandler
コードは重要Parent Form to subscribe to the Child Form's ValueChanged Event
です。specify a procedure to execute when the event has fired
このシナリオでは、ValueChanged イベントが発生するたびに、親 TextBox の値が子 TextBox の値と等しくなることがわかります (この例では、これは子のボタンがクリックされたときに発生します)。
Event 宣言内に複数の引数と任意のデータ型を入れることができますが、発生したときに実行されるプロシージャ (つまり、ChildFormValueChanged) が Event と同じシグネチャを持っていることを確認する必要があるだけです (引数とデータ型が同じであることが期待されます)。 )。