マルチフォームWindowsアプリケーションでのフォームクロージャーの管理
堅牢なマルチフォームWindowsアプリケーションの開発には、早期のアプリケーション終了または長引くプロセスを避けるために、フォーム閉鎖を慎重に管理する必要があります。 一般的な問題には、非メインフォームが閉じたときにアプリケーション全体がシャットダウンするか、目に見えるフォームがすべて閉じた後でもアクティブなままであるアプリケーションが含まれます。
単にとShow()
を使用してフォームの可視性を管理することは不十分ですが、不十分です。 他の人を表示しながらメインフォームを隠すと、目に見えるフォームがすべて閉じていても、アプリケーションが無期限に実行されます。
Hide()
ソリューションは、アプリケーションのライフサイクルを管理する
Program.cs
メソッドを調整します。
Program.cs
Main
この強化されたコードは、
<code class="language-csharp"> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Form1(); main.FormClosed += new FormClosedEventHandler(FormClosed); main.Show(); Application.Run(); } static void FormClosed(object sender, FormClosedEventArgs e) { ((Form)sender).FormClosed -= FormClosed; if (Application.OpenForms.Count == 0) Application.ExitThread(); else Application.OpenForms[0].FormClosed += FormClosed; }</code>
はアプリケーションを優雅に終了します。 それ以外の場合は、ハンドラーを次のオープンフォームに再び取り付け、複数のフォーム閉鎖にわたって適切な管理を確保します。
FormClosed
このアプローチは、すべてのフォームが閉じられた後にのみマルチフォームアプリケーションがきれいに終了することを保証し、予期しない動作を防ぎ、アプリケーションの安定性を改善します。
以上がマルチフォームWindowsアプリケーションでフォームを閉じるときに、予期しないアプリケーション終了を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。