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

はじめまして。VB.NET2005でプログラミングをしている初心者です。
MDIフォームのAPを作成しています。
MDI親フォーム1つと子フォームが2つあるとします。

親フォームから子フォーム2つをShowします。
子フォーム1を閉じたときに、親フォーム内で子フォーム1が閉じられた事を知るすべは無いのでしょうか。
親フォーム内で起こるイベントでどの子フォームが閉じられたかを得たいと思っています。

どなたか分かる方いらっしゃいましたらご教授ください。
宜しくお願い致します。

A 回答 (2件)

#1さんと同じw



ただ「Dispased」だとどちらが終了したのか分からないんじゃ…
で、すなおに「Form_Closing」か「Form_Closed」がいいのでは?

子フォームを開く前に下記追加
AddHandler ChildForm.FormClosing, AddressOf ChildForm_FormClosing

親フォームのどこかに下記追加
Private Sub ChildForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
  Dim frm As Form = DirectCast(sender, System.Windows.Forms.Form)
  MessageBox.Show(String.Format("formname=[{0}] frmtext=[{1}]", frm.Name, frm.Text))
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
こんな方法があったとは、思いつきませんでした。
大変参考になりました。ありがとうござました。

お礼日時:2007/06/28 09:53

MDIについて詳しくはないのですが、AddHandlerで親フォームにて


イベントを受け取るとか・・・

Private Sub ShowNewForm(ByVal sender As Object, ByVal e As Eve.....
  ' 子フォームの新しいインスタンスを作成します
  Dim ChildForm As New System.Windows.Forms.Form
  ' 表示する前に、この MDI フォームの子に設定します
  ChildForm.MdiParent = Me

  'この行を追加
  AddHandler ChildForm.Disposed, AddressOf ChildForm_Disposed

  m_ChildFormNumber += 1
  ChildForm.Text = "ウィンドウ " & m_ChildFormNumber

  ChildForm.Show()

End Sub


Private Sub ChildForm_Disposed(ByVal sender As Object, ByVal e As System.EventArgs)
  Debug.WriteLine("終了")
End Sub

注意!コードのスペースは全角です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
こんな方法があったとは、思いつきませんでした。
大変参考になりました。ありがとうござました。

お礼日時:2007/06/28 09:53

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