以下のようにする。
/// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Main() { (new Form1()).Show(); // フォームが全て閉じられるまでプログラム実行を継続 var oTimer = new System.Windows.Forms.Timer(); oTimer.Interval = 1000; oTimer.Tick += delegate(object sender, EventArgs e) { if (Application.OpenForms.Count == 0) { Application.Exit(); } }; oTimer.Start(); Application.Run(); }
普通はこんなことしなくても「Application.Run(new Form1());」でよいのだが、表示するフォームが取得できない場合に上の方法を使った。