問:處理窗體關閉事件以防止應用程序終止
在有多個窗體的情況下,當顯示另一個窗體(Form2)時關閉啟動窗體(Form1)會意外終止整個應用程序。目標是即使在關閉 Form1 後也能保持應用程序運行。
答:
問題在於主應用程序線程的默認行為,該線程通常在啟動窗體 (Program.cs) 關閉時終止。要解決此問題:
<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(); }</code>
<code class="language-csharp">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>
此代碼確保:
通過這些修改,即使在關閉 Form1 後,應用程序也將保持運行,後續窗體將繼續按預期工作。
以上是關閉啟動表格後,如何保持Windows表單應用程序運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!