MDIFormのイベント

解決


  2002-11-06 22:51:44  No: 76320

MDIChildFormのLoad、UnLoadイベントやActivete、Deactivateイベントが発生するタイミングを
親のMDIFormが知ることは出来るのでしょうか?


Say  2002-11-06 23:55:12  No: 76321

事前に知ることは不可能です。
メッセージが流れて、イベントプロシージャに渡る直前に捕まえることなら
メッセージフックかサブクラス化で可能です。

イベントプロシージャに渡った直後でいいなら、
各イベントプロシージャ内でフラグを立てるなり、
実行したい関数を呼ぶなり、親にSendMessageするなりしてください。


  2002-11-07 21:09:29  No: 76322

やはり、各イベントプロシージャ内で何らかの処理が必要になってくるんですね。
イベントプロシージャ内で実行したい関数を呼ぶことにします。


魔界の仮面弁士  2002-11-23 00:23:17  No: 76323

子イベント発生直後でもよければ、WithEventsで拾えます。

Option Explicit

Private WithEvents Child As VB.Form

Private Sub Child_Activate()
    Debug.Print "Form_Activate"
End Sub

Private Sub Child_Load()
    Debug.Print "Form_Load"
End Sub

Private Sub Child_Unload(Cancel As Integer)
    Debug.Print "Form_Unoad"
End Sub

Private Sub MDIForm_Load()
    Set Child = New Form1
    Child.Show
End Sub

# この場合、フォーム数分のWithEvents変数が必要となります。
# もし、子フォーム数が不定である場合は、イベント管理用の
# クラスを、別途自作する必要があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加