c#应用程序在主窗体关闭时退出

时间:2013-07-30 17:15:54

标签: c# winforms hide exit

我正在编写一个多表单应用程序,我希望能够在应用程序关闭时关闭Form1。
现在我正在使用this.Hide来隐藏表单。有没有办法设置它以便我可以关闭任何表单,或者应用程序应该仅在所有表单都关闭时存在?

我想我记得曾经在某个时刻看到类似的东西,但那可能不是视觉工作室和c#。

4 个答案:

答案 0 :(得分:13)

Program.cs文件中,您有Application.Run(new Form1())行。替换为

var main_form = new Form1();
main_form.Show();
Application.Run();

您还需要通过调用Application.Exit()显式关闭应用程序。

答案 1 :(得分:3)

一种策略是执行以下操作:

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    if (Application.OpenForms.Count == 0)
        Application.Exit();
    }
}

如果您将其放在所有表单上,当最后一个表单关闭时,应用程序将退出。

答案 2 :(得分:1)

多形式应用程序应该有一个清除EXIT选项(通过菜单,工具栏),因为您无法知道用户想要在最后一个窗口关闭时关闭程序(我认为用户可以转到文件/打开并打开新窗口)

自动执行用户未提出要求的应用程序可能会使用挫折/混淆并花时间重新打开应用程序。

即使用户可以认为应用程序因为没有关闭它而以某种方式崩溃。

答案 3 :(得分:0)

根据您的评论,这是一种单流应用

我建议您使用 BACK,NEXT,CANCEL 按钮在单个表单上实现典型的向导界面

当达到所需状态时,例如收集了足够的信息, NEXT 按钮将更改为 FINISH 按钮。

每当用户按下 CANCEL / FINISH 按钮时,窗口将关闭

如果你仍然需要multiform,你仍然可以拥有它,在这个你可以同时有多个流程,只需完成或取消你想要的那个。