关闭启动表格后,保持应用程序活跃
>您可能会遇到一个问题,即即使开放了其他表格(例如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
Application.OpenForms.Count == 0
>
Application.ExitThread()
以上是关闭启动表格后,如何保持应用程序运行?的详细内容。更多信息请关注PHP中文网其他相关文章!