问:处理窗体关闭事件以防止应用程序终止
在有多个窗体的情况下,当显示另一个窗体(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中文网其他相关文章!