首頁 >後端開發 >C++ >關閉啟動表格後,如何保持Windows表單應用程序運行?

關閉啟動表格後,如何保持Windows表單應用程序運行?

Linda Hamilton
Linda Hamilton原創
2025-01-29 10:33:10221瀏覽

How to Keep a Windows Forms Application Running After Closing the Startup Form?

防止關閉啟動窗體時應用程序終止

問:處理窗體關閉事件以防止應用程序終止

在有多個窗體的情況下,當顯示另一個窗體(Form2)時關閉啟動窗體(Form1)會意外終止整個應用程序。目標是即使在關閉 Form1 後也能保持應用程序運行。

答:

問題在於主應用程序線程的默認行為,該線程通常在啟動窗體 (Program.cs) 關閉時終止。要解決此問題:

  1. 修改 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>
  1. 實現 FormClosed 事件處理程序:
<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 時,會移除其 FormClosed 事件處理程序,並將該事件附加到下一個打開的窗體。
  • 如果沒有更多打開的窗體,則應用程序終止。
  • 否則,事件處理程序將繼續監視窗體關閉事件,確保只有在所有窗體都關閉後應用程序才會退出。

通過這些修改,即使在關閉 Form1 後,應用程序也將保持運行,後續窗體將繼續按預期工作。

以上是關閉啟動表格後,如何保持Windows表單應用程序運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn