投稿日 | : 2007/06/27(Wed) 03:47 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : まずは、子フォームが一つだけの場合 |
とりあえず、子フォームを 1 個だけにして単純化した例。
1. 標準 EXE プロジェクトを新規作成。(Project1)
2. MDIForm を追加。(MDIForm1)
3. Form1 を MDIChild = True に変更。
4. MDIForm1 を AutoShowChildren = False に変更。
5. MDIForm1 に Timer コントロール追加。(Timer1)
6. MDIForm1 に下記コード。他にはコード無し。
7. スタートアップを MDIForm1 に変更。
8. 実行し、子フォームを閉じてみる。親フォームが閉じられれば成功。
---- MDIForm1 ----
Option Explicit
Private WithEvents ChildForm As Form
Private Sub MDIForm_Load()
Set ChildForm = New Form1
ChildForm.Show
End Sub
Private Sub ChildForm_Unload(Cancel As Integer)
Set ChildForm = Nothing
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
Unload Me
End Sub
----------------------
ChildForm_Unload 内で Unload Me すると、少々問題が出てくるので、
タイマーを使って、子のアンロード完了後に親をアンロードしています。