VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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 すると、少々問題が出てくるので、
タイマーを使って、子のアンロード完了後に親をアンロードしています。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -