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

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

Susan Sarandon
Susan Sarandon原創
2025-01-29 10:16:09471瀏覽

How Can I Keep My Application Running After Closing the Startup Form?

關閉啟動表格後,保持應用程序活躍

>您可能會遇到一個問題,即即使開放了其他表格(例如Form2),即使關閉初始表格(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
  • 優雅的關閉:如果沒有表格(),則優雅地關閉了該應用程序。
  • >事件處理程序reattachment:如果其他表格打開,則將事件處理程序附加到下一個打開表單上,以確保繼續監視。 Application.OpenForms.Count == 0> Application.ExitThread()
  • 此方法允許Form2在關閉Form1後保持打開狀態,並且僅在關閉所有表單時終止應用程序。

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

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