我正在编写一个多窗体应用程序,想要在不关闭整个应用程序的情况下关闭Form1。
目前我使用 this.Hide
来隐藏该窗体。是否有一种方法可以设置使得可以关闭任何窗体,或者只能在所有窗体关闭时应用程序才能退出?
我记得曾经在某个地方看到过这样的东西,但那可能不是在Visual Studio和C#中。
在你的 Program.cs
文件中,你会有一行像这样的代码 Application.Run(new Form1())
。请将其替换为:
var main_form = new Form1();
main_form.Show();
Application.Run();
你还需要在想要关闭应用程序的位置显式地调用 Application.Exit()
方法来关闭应用程序。
var main_form = new Form1();
main_form.Show();
Application.Run();
否则它只是启动了而没有显示表单。再次感谢! - WolfyD有一个策略是像以下这样做:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (Application.OpenForms.Count == 0)
Application.Exit();
}
}
}
。 - GGG根据您的评论,这是一种单流程应用程序
我建议您在单个表单上实现典型的向导界面,并使用后退、下一步、取消按钮。
当达到所需状态时,例如收集足够的信息,下一步按钮将更改为完成按钮。
任何时候用户按下取消/完成按钮,窗口都会关闭
如果您仍然想要多个表单,您仍然可以拥有它,在此过程中,您可以同时拥有多个流程,并只完成或取消您想要的流程。
Program.cs
文件。第三行使用的窗体是您的“根”窗体,当此窗体关闭时,程序将关闭。因为在运行窗体后程序没有其他任务可执行,所以它会关闭。您希望程序在关闭窗体后执行什么任务? - gunr2171