C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[4]:
(過去ログ 117 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■69082
/ inTopicNo.1)
MDI子フォームのFormClosedイベントが発生しない
▼
■
□投稿者/ ゆる
(4回)-(2013/12/02(Mon) 19:37:01)
分類:[C#]
VS2008 C# .NET3.5 Windows7 64bit
いつも勉強させて頂いています。
MDI親フォームをShowメソッドで開くと、
親フォームを閉じるときにMDI子フォームのFormClosedイベントが発生します。
しかしながらMDI親フォームをShowDialogメソッドで開くと、
親フォームを閉じるときにMDI子フォームのFormClosedイベントが発生しません。
これは仕様なのでしょうか?
また、ShowDialogでMDI親フォームを開いた場合でも、親フォームを閉じるときに
MDI子フォームのFormClosedイベントが発生するようにすることは可能でしょうか?
ご教示頂ければ幸いです。
引用返信
編集キー/
編集
■69083
/ inTopicNo.2)
Re[1]: MDI子フォームのFormClosedイベントが発生しない
▲
▼
■
□投稿者/ オショウ
(100回)-(2013/12/02(Mon) 21:11:52)
> MDI子フォームのFormClosedイベントが発生するようにすることは可能でしょうか?
FromClosedイベントで何かしているのですか?
それによっては、回答が変わるかもしれません。
以上。
引用返信
編集キー/
編集
■69084
/ inTopicNo.3)
Re[2]: MDI子フォームのFormClosedイベントが発生しない
▲
▼
■
□投稿者/ ゆる
(6回)-(2013/12/02(Mon) 21:30:22)
> FromClosedイベントで何かしているのですか?
> それによっては、回答が変わるかもしれません。
オショウさん返信ありがとうございます。
FormClosedイベントでは、
ウインドウサイズやコンボボックスの選択肢などの情報をxmlファイルに保持する処理を呼んでいます。
(Load時にそのxmlファイルを読み込んで、前回終了時の状況を再現しています。)
また、MDI子フォームより派生して開くフォーム(入力IFなど)が開いていれば閉じる、
といった処理を呼んでいる子フォームもあります。
そもそも、
何故親フォームがShowDialogだと子フォームのFormClosedイベントが発生しないのかが理解できず…。
引用返信
編集キー/
編集
■69085
/ inTopicNo.4)
Re[3]:
▲
▼
■
□投稿者/ Azulean
(248回)-(2013/12/02(Mon) 22:17:09)
2013/12/02(Mon) 22:23:59 編集(投稿者)
■
No69084
(ゆる さん) に返信
> そもそも、
> 何故親フォームがShowDialogだと子フォームのFormClosedイベントが発生しないのかが理解できず…。
仕様・不具合を判断するのは Microsoft だけだと思いますので、第三者としては「そのように実装されているから」としか答えようがないかと思います。
.NET 4 の System.Windows.Forms.dll の Form.cs によると、Modal 表示の場合は MDI 子フォームへの事前通知ループに入りません。
この挙動に関して不満がある場合は、サポートに問い合わせるか、Connect にリクエストを登録するかと言うことになります。
なお、即座に(= あなたのプログラムをリリースするまでに)この振る舞いが変わることはないと思われるので、現実的には自前でそういった処理を書くか、モーダル表示にするのをあきらめるかになると思います。
引用返信
編集キー/
編集
■69086
/ inTopicNo.5)
Re[4]:
▲
▼
■
□投稿者/ ゆる
(7回)-(2013/12/02(Mon) 22:28:01)
Azuleanさん
回答ありがとうございます。
> .NET 4 の System.Windows.Forms.dll の Form.cs によると、Modal 表示の場合は MDI 子フォームへの事前通知ループに入りません。
なるほど、そういう仕様なのですね。すっきりしました。
それを踏まえて対応を検討してみようと思います。
ありがとうございました。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-