所有者からフォームにデータを取得できますが、その逆はできません。フォームから所有者にデータを渡すにはどうすればよいですか。?
本当に使えない
Dim ownerFrm As New ownerFrm()
そうすると、このフォームはデータベース接続やその他多くのものに読み込まれないので、それをいじるのは避けたいと思います。これには非常に簡単な解決策が必要です。しかし、私はそれを思い付くことができません。
所有者フォームは、子フォームへの参照を提供する必要があります。これを行うには複数の方法があります。たとえば、所有者フォームに子フォームが表示されている場合、次のようになります。
frmChild = New ChildForm()
frmChild.Parent = Me
frmChild.Show()
または、プロパティの代わりに、子フォームのコンストラクターをオーバーロードできます。
frmChild = New ChildForm(Me)
frmChild.Show()
または、子フォームを表示し、親を引数として取るメソッドを作成することもできます。
frmChild = New ChildForm()
frmChild.ShowChild(Me)
これらすべての場合において、子フォームには、親フォームへの参照を保持する変数が必要です。これにより、親フォームを呼び出すことができます。
もう1つのオプションは、子フォームにイベントを追加することです。子フォームが所有者フォームにデータを送信する必要がある場合、データを含むイベントを発生させることができ、所有者フォームはイベントを処理してその方法でデータを取得します。
イベントを使用する必要があります(WithEventsを参照)。