我正在编写一个多表单应用程序,我希望能够在应用程序关闭时关闭Form1。
现在我正在使用this.Hide
来隐藏表单。有没有办法设置它以便我可以关闭任何表单,或者应用程序应该仅在所有表单都关闭时存在?
我想我记得曾经在某个时刻看到类似的东西,但那可能不是视觉工作室和c#。
答案 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,你仍然可以拥有它,在这个你可以同时有多个流程,只需完成或取消你想要的那个。