| ■86796 / ) |
Re[3]: メッセージボックスが出ない |
□投稿者/ にゃるら (9回)-(2018/03/16(Fri) 17:05:19)
|
■No86795 (にゃるら さん) に返信
うーん、こういうことなのでしょうか?
モーダルで表示される直前にForm1から親子関係が解かれたユーザコントロールは、 一時引受人であるParkingwindowさんの管理下に入る。 ユーザコントロールが破棄されるときに、Parkingwindowさんは自分が引き受けているハンドルが すべてなくなったことをチェックする処理を遅延実行する。 メッセージボックスは、オーナーが指定されていないので、親ウィンドウがParkingWindowさんになる。 遅延していたチェック処理が走り、Parkingwindowさんは自分が引き受けているハンドルが すべてなくなったことで自分をDestoryしようとする。
その結果、モーダルウィンドウは親ウィンドウを失うことになるため、閉じられる。
これを回避するためには、
・モーダルウィンドウの親ウィンドウを明示的に指定する ・ユーザコントロールが破棄されたあと、ParikingWindowsさんが引き受けているハンドルがないのかを チェックするまでの間は新しいモーダルウィンドウは開かない
といった感じのことで対応しなくちゃいけないので、魔界の仮面弁士さんが挙げられた様々な対応案の どれかを採用すれば解決できるってことなんですかね。。。
「オーナーとなるウィンドウを渡してモーダルウィンドウを出す」としておくのが吉っぽいですね。
|
|