dポイントプレゼントキャンペーン実施中!

同じソリューションにフォームA、フォームBがあり、フォームBは
フォームAから起動されます。
フォームBがクローズした時、フォームAのメソッドを走らせたい
のですが、その手段がわからず困っています。

別のフォームのイベントを取得する方法をご存知でしたら、
ご教授ください。
宜しくお願いします。

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
    • good
    • 1
この回答へのお礼

ありがとうございます。
参考にさせていただき、目的の動作を実現できました。

お礼日時:2007/08/08 22:09

フォーム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メソッドが呼び出されるようになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考になりました。

お礼日時:2007/08/08 22:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!