9

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

我想我记得曾经看到过类似的东西,但那可能不是 Visual Studio 和 C#。

4

4 回答 4

17

在您的Program.cs文件中,您有一行像Application.Run(new Form1()). 将其替换为

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

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

于 2013-07-30T17:18:42.250 回答
5

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

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

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

于 2015-12-03T15:07:07.400 回答
1

多格式应用程序应该有一个明确的 EXIT 选项(通过菜单、工具栏),因为您不知道用户想要在最后一个窗口关闭时关闭程序(我假设用户可以转到文件/打开和打开新窗口)

自动执行用户未要求的操作的应用程序可能会感到沮丧/困惑,并花时间重新打开应用程序。

甚至用户也可以认为应用程序以某种方式崩溃,因为他没有关闭它。

于 2013-07-30T17:21:28.267 回答
0

根据您的意见,这是一种单一流程的应用程序

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

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

任何时候用户按下CANCEL/FINISH按钮,窗口都会关闭

如果您仍然想要多形式,您仍然可以拥有它,在这种情况下,您可以同时拥有多个流程,然后完成或取消您想要的流程。

于 2013-08-02T13:31:16.340 回答