我正在编写一个多表单应用程序,我希望能够在不关闭应用程序的情况下关闭 Form1。
现在我this.Hide
用来隐藏表格。有没有办法设置它以便我可以关闭任何表单,或者应用程序应该只在所有表单都关闭时才存在?
我想我记得曾经看到过类似的东西,但那可能不是 Visual Studio 和 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按钮变为FINISH按钮。
任何时候用户按下CANCEL/FINISH按钮,窗口都会关闭
如果您仍然想要多形式,您仍然可以拥有它,在这种情况下,您可以同时拥有多个流程,然后完成或取消您想要的流程。