自分の経験とドキュメントを読んだ感覚で判断したことが実は単なる思い込みだったことはままあるが、今回もそんな一件。 WindowsFormにおいて、FormのLoadイベントの解説は日本語ドキュメントでは以下のように明記されている。 Form.Load イベント フォームが初めて表示される直前に発生します。 これに基づきLoadイベントには一度しか実行されないことを期待した処理をコーディングするのだが、なんと以下のコードを実行するとLoadイベントはShowDialogメソッドを実行した回数、つまり3回発生するのである。むろん、Form1クラスのインスタンスの生成は一度しか行っていないのに、だ。 Form1 frm1 = Form1; frm1.ShowDialog(); frm1.ShowDialog(); frm1.ShowDialog(); フォームが初めて表示される直前、初めて表示?