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

本文关键字:应用程序 退出 窗体 | 更新日期: 2023-09-27 18:25:43

我正在编写一个多表单应用程序,我希望能够在不关闭应用程序的情况下关闭Form1
现在我正在使用this.Hide来隐藏表单。有没有办法设置它,这样我就可以关闭任何表单,或者只有当所有表单都关闭时,应用程序才应该存在?

我想我记得有一次看到过这样的东西,但那可能不是visual studio和c#。

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

Program.cs文件中,有一行类似于Application.Run(new Form1())。更换为

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

此外,您还需要通过在需要的位置调用Application.Exit()来显式关闭应用程序。

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

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

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

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

自动执行用户没有要求的应用程序可能会使用沮丧/困惑,并花费时间重新打开应用程序。

即使是用户也可能认为应用程序在某种程度上崩溃了,因为他没有关闭它。

根据您的喜好,它是一种单一流类型的应用程序

我建议您在带有BACK、NEXT、CANCEL按钮的单个窗体上实现典型的向导界面

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

每当用户按下取消/完成按钮时,窗口将关闭

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