首页 > 后端开发 > C++ > 关闭启动表格后,如何保持Windows表单应用程序运行?

关闭启动表格后,如何保持Windows表单应用程序运行?

Linda Hamilton
发布: 2025-01-29 10:33:10
原创
246 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板