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

投稿日: 2007/06/26(Tue) 20:43
投稿者KenPAPA
Eメール
URL
タイトルRe^2: MDIフォームで子フォームが閉じられた時親フォームでのイベント

魔界の仮面弁士様、ご回答有り難うございます。

> 「WithEvents」を使ってみては如何でしょう。

WithEventsを使ったことが無かったので悪戦苦闘しています。

以下のコードでも「複数のMDIフォームは使用できません。」が出てしまいました。

■Class1
------------------------------------------------
Private WithEvents mForm As Form

Public Property Set MyForm(objForm As Form)
  Set mForm = objForm
End Property

Public Property Get MyForm() As Form
  Set MyForm = mForm
End Property

Private Sub mForm_Unload(Cancel As Integer)

'子フォーム無くなったら、親フォームも消す
Dim myAri As Boolean
Dim Fm As Form

For Each Fm In Forms
    If Not TypeOf Fm Is MDIForm Then
        If Fm.Caption <> mForm.Caption Then
            myAri = True
            Exit For
        End If
    End If
Next

If myAri = False Then
    Unload fMainForm
'    End←←Endなら終了出来ますが・・・
End If

End Sub
------------------------------------------------

■子フォーム 
------------------------------------------------
'General
Private objForm As Class1

Private Sub Form_Load()
    Set objForm = New Class1
    Set objForm.MyForm = Me
End Sub
------------------------------------------------

■Module1
------------------------------------------------
'General
Public fMainForm As frmMain

Sub Main()
    Set fMainForm = New frmMain
    fMainForm.Show
End Sub
------------------------------------------------


WithEventsの使い方がおかしいでしょうか?
Endで無理矢理終了なら出来ましたが、この場合何か問題が有るでしょうか?

宜しくお願い致します。


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

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

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