- ベストアンサー
サブフォームのイベントを取得するには?
同じソリューションにフォームA、フォームBがあり、フォームBは フォームAから起動されます。 フォームBがクローズした時、フォームAのメソッドを走らせたい のですが、その手段がわからず困っています。 別のフォームのイベントを取得する方法をご存知でしたら、 ご教授ください。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
起動というのは、モーダルダイアログではないと仮定しての回答です。 Form1(質問のフォームA)のButton1でForm2(質問のフォームB)を起動。 DisposedまたはFormClosedイベントのどちらかを使用して下さい。 Public Class Form1 Private WithEvents a As Form2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = New Form2 a.Show() End Sub Private Sub a_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles a.Disposed MsgBox("DISPOSED") a = Nothing End Sub Private Sub a_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles a.FormClosed MsgBox("CLOSED") a = Nothing End Sub End Class
その他の回答 (1)
- NYOI
- ベストアンサー率58% (56/96)
フォームAの方に以下のメソッドを用意します。 Public Sub FormB_Closed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) MessageBox.Show("FormBが閉じられたよ!") '実際はこの部分に行いたい処理を書く End Sub フォームBのLoadイベントに、以下の様にコードを書きます。 Private Sub FormB_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler Me.FormClosed, AddressOf FormA.FormB_Closed End Sub これで、フォームBが閉じられたとき(正確にはFormB.FormClosedイベントが発生したとき)に、FormAのFormB_Closedメソッドが呼び出されるようになります。
お礼
ありがとうございます。 参考になりました。
お礼
ありがとうございます。 参考にさせていただき、目的の動作を実現できました。