すべての子フォームを閉じる

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

'MDIフォームの子フォームをすべて閉じる方法です

'実は、このテクニックはマジで欲しかったんですよ。
'kuroNeko Drawの作成でこのテクニックができなくて
'メニューの"すべて閉じる"を省こうかなと思ってました。
'つきとさんの助言で作成できてよかったと思います。
'このサンプルは、本当は作成する予定ではなかったのですが
'あまりの嬉しさに作ってしまいました。

'子フォームをすべてアンロードする関数
Sub Close_AllChildForm()

    '子フォームをすべて閉じます
    Do While Not (Me.ActiveForm Is Nothing)
    
        '現在のアクティブ子フォームをアンロードする
        Unload Me.ActiveForm
        
        'フォーカスを別の子フォームに移します
        DoEvents
    
    Loop

End Sub

Private Sub MDIForm_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    
    'クリックボタンごとの処理をします
    
    If Button = vbLeftButton Then
        
        '子フォームの新規作成をします
        Dim frm As Form1
        
        Set frm = New Form1
        frm.Show
        
    ElseIf Button = vbRightButton Then
                
        'すべての子フォームをアンロードします
        Close_AllChildForm
    
    End If

End Sub



<戻る

Sample36.lzh


http://www.vector.co.jp/authors/VA015521/