>您可能會遇到一個問題,即即使開放了其他表格(例如Form2),即使關閉初始表格(Form1)也終止了整個應用程序。這是因為該應用程序的生命週期與主要形式相關。 > >簡單地隱藏form1而不是關閉它可以使應用程序運行,但引入了一個問題:當form2關閉時,應用程序不會優雅地關閉。
解決方案在於修改
代碼,該代碼控制著應用程序的關閉行為。 這是調整後的代碼,以在關閉初始表格後保持應用程序運行:此改進的代碼可以執行以下操作:
>
Program.cs
[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 } }
>
事件處理程序連接到初始式(form1)。FormClosed
Application.OpenForms.Count == 0
>
Application.ExitThread()
以上是關閉啟動表格後,如何保持應用程序運行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!