MDIフォームとユーザコントロール
VB.Netでの質問です。
ウィンドウメッセージを受け取りイベントを起こすユーザーコントロールクラス
Class UserCtl
Private Event MyKeyDown()
Private Sub UserCtl_KeyDown() as Handels MyBase.KeyDown
RaiseEvent MyKeyDown
End Sub
End Class
プロセスA
MDI子フォームにユーザーコントロールを追加し、子フォームにて、UserCtl.MyKeyDownイベントプロシージャでユーザーコントロールがウィンドウメッセージを受け取ったと認識し処理をします。
MDI子フォームはMDI親フォームより、CloseメソッドでしかCloseしません。
プロセスB
FindWindowでMDI親フォーム, FindWindowExでMDI子フォーム、ユーザーコントロールハンドルを確認した上で、ユーザーコントロールにウィンドウメッセージをPostMessageします。
質問1
プロセスBからハンドルを探していますが、ウィンドウハンドル,ユーザーコントロールハンドルはいつまで有効なハンドルなのでしょうか?
Closeでしょうか、それとも、Disposeでしょうか?
質問2
MDI親フォームでMDI子フォームをCloseした後でも、UserCtl.MyKeyDownは発生できるものなのでしょうか?
質問3
ユーザーコントロールで親フォーム(MDI子フォーム)がCloseされた事を認識する方法はないでしょうか?
Me.Parent.IsDisposeでできるかなぁと考えているのですが。
よろしくお願いいたします。
お礼
ご回答有難うございました。 残念ながら解決に至りませんでした。 別の方法にてトライしてみます。
補足
ご回答有難うございます。 現状では、あるアプリケーションソフトの印刷時に実行を押しますと前述のようなメッセージが現れます。 これを無視し他のアプリの表示やら、そこでの動作には問題は有りません。 これらを終了させましても問題のメッセージは張り付いたままです。 最も上のモーダルフォームとやらは何処に有るのかわかりません。 このソフトを立ち上げる前にこのメッセージが出ないようにしたいのです。 何か方法がお判りでしたらご教授願います。