DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MDIの子フォームのActivatedイベントについて

環境/言語:[NET Framework2.0]
分類:[.NET]

MDI親フォームから、二つのボタンを押すことで、
それぞれフォームを開きます。

ひとつはshowで開き、もうひとつはshowdialogで開きます。
showdialogで開いた方を閉じるときに、showで開いた方の
Activatedイベントを起こさせたいのですが、可能でしょうか?

よろしくお願いします。
■No25403に返信(駆け出し新人さんの記事)

もし指定したフォームをアクティブにしたいということであれば、そのフォームのActivateメソッドを呼び出してください。もし、文字通り、Activatedイベントを発生させたいだけということであれば、なぜそうする必要があるのかを教えていただけますか?
■No25407に返信(管理人さんの記事)
> ■No25403に返信(駆け出し新人さんの記事)
>
> もし指定したフォームをアクティブにしたいということであれば、そのフォームのActivateメソッドを呼び出してください。もし、文字通り、Activatedイベントを発生させたいだけということであれば、なぜそうする必要があるのかを教えていただけますか?

管理人様

ありがとうございます。予想では、後のshowdialogで開いたほうを閉じると、先のshowで開いたほうが自動でActiveになると思っていましたが、Activatedイベントがおきなかったため、質問させていただきました。先のshowで開いたほうは、ウィンドウの後ろになりますが、ずっとActiveのようでした。
もう一度お尋ねしますが、Activatedイベントを発生させたいという目的は何でしょうか?

もしフォームがアクティブになったり、ShowDialogで開いたフォームを閉じたときに何らかの処理を行いたいのであれば、そのようなメソッドを作成し、ActivatedイベントハンドラやShowDialogの後で呼び出せばよいと思うのですが、それではダメだという理由があるのでしょうか?

もしフォームのActivatedイベントを発生させたいというのであれば、フォームのOnActivatedメソッドを呼び出す方法も考えられます。ただし、特別な理由がないのであれば、あまりよいやり方とは思えません。
管理人様

> もしフォームがアクティブになったり、ShowDialogで開いたフォームを閉じたときに何らかの処理を行いたいのであれば、そのようなメソッドを作成し、ActivatedイベントハンドラやShowDialogの後で呼び出せばよいと思うのですが、それではダメだという理由があるのでしょうか?

おっしゃるとおりの方法(ShowDialogの後で呼びだす)で解決できました。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板