スタートアップフォームを閉じた後、アプリケーションをアクティブに保ちます
他のフォーム(Form2など)が開いていても、初期フォーム(Form1)を閉じる(Form1)もアプリケーション全体を終了した問題に遭遇した可能性があります。これは、アプリケーションのライフサイクルがメインフォームに関連付けられているためです。
form1を閉じる代わりにform1を隠すだけで、アプリケーションが実行され続けますが、問題は導入されます。form2が閉じてもアプリケーションは優雅に閉じません。ソリューションは、アプリケーションのシャットダウン動作を制御する
コードの変更にあります。 最初のフォームが閉じた後にアプリケーションを実行し続けるための調整されたコードは次のとおりです。この改善されたコードは次のとおりです
Program.cs
<code class="language-csharp"> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 main = new Form1(); main.FormClosed += FormClosed; main.Show(); Application.Run(); } static void FormClosed(object sender, FormClosedEventArgs e) { ((Form)sender).FormClosed -= FormClosed; //Detach event handler if (Application.OpenForms.Count == 0) { Application.ExitThread(); // Exit only when all forms are closed } else { Application.OpenForms[0].FormClosed += FormClosed; // Attach to the next open form } }</code>イベントハンドラーは初期フォーム(form1)に添付されています。 フォームクロージャー監視:
FormClosed
)、以上がスタートアップフォームを閉じた後、アプリケーションを実行し続けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。