複数の子フォームから親フォームを「終了」させる時に処理を指定したい

[戻る]
なおぞう 2016/07/29(金) 19:01:31
よろしくお願いします。
C# VS2010で開発しております。

親フォームA
子フォームB
子フォームCと有りまして。

Bを終了する際に親Aを終了させるのですが、Bの時は親フォームで「本当に終わらせま
すか」というメッセージを出して確認。
Cを終了する場合には、問答無用で親Aを終了させたいのです。

親フォームのClose()を呼んだときに、A_FromClosing()で、Bからの終了要求だったら確
認メッセージを出す。Cだったら出さないとしたいので、どの子フォームからClose()要
求がでたか知る方法を教えていただきたいです。

よろしくお願い致します。

YuO [E-Mail] 2016/07/30(土) 01:24:20
FormBやFormCがFormA.Closeを直接呼ぶのではなく,
FormA.ForceCloseやFormA.ConfirmCloseというメソッドを用意しておいて,
FormBはFormA.ConfirmCloseを,FormCはForceCloseを呼ぶようにします。

そして,ConfirmCloseは確認メッセージを出して必要なら閉じる,
ForceCloseは確認メッセージを出さずに閉じれば良いです。

なおぞう 2016/08/05(金) 21:09:48
[[解決]]
>YuO様

アドバイスありがとうございました。
既存プログラムがあって、Closeの処理を大きく変えることができなかったので、外部変
数をもたせて、親フォームではどの子フォームからCloseが来たか判断する事で対応しま
した。

古いスレッドには追加発言できません。