C# 我想在关闭应用程序之前关闭所有表单

C# 我想在关闭应用程序之前关闭所有表单,c#,winforms,C#,Winforms,我有一个表格1,从这个表格1到新的表格2,表格2新的表格3。。。当我关闭表单1时,应用程序就会关闭。但是,我想在关闭应用程序之前关闭所有表单。只要写下这个来显示每个表单 Form1 f=new Form1(); f.ShowDialog(); 你可以试试 foreach(Form f in Application.OpenForms) { f.Close(); } 您可以根据需要进行调整 如果我正确理解了问题(我可能不理解……这很难理解),请参阅有关的详细信息,您需要确保关闭第一个表

我有一个表格1,从这个表格1到新的表格2,表格2新的表格3。。。当我关闭表单1时,应用程序就会关闭。但是,我想在关闭应用程序之前关闭所有表单。

只要写下这个来显示每个表单

Form1 f=new Form1();
f.ShowDialog();
你可以试试

foreach(Form f in Application.OpenForms)
{
    f.Close();
}
您可以根据需要进行调整


如果我正确理解了问题(我可能不理解……这很难理解),请参阅有关的详细信息,您需要确保关闭第一个表单不会关闭整个程序,而关闭最后一个表单会关闭整个程序。如果是这种情况,则需要进行以下更改:

在Program.cs文件中,您将看到一些类似于
Application.Run(new Form1())的代码。这会将一个
表单
实例传递给
Run()
方法,当该
表单
实例关闭时,
Run()
方法将自动返回并允许程序退出

相反,不要将任何内容传递给
Run()
。使用无参数重载:
Application.Run()
您仍然需要创建第一个
表单
实例并显示它。例如,在调用
Application.Run()之前添加此项:

new Form1().Show();
完成后,您现在需要在实际希望程序结束时调用
Application.Exit()
。因此,在您显示的最后一个表单中,重写
OnFormClosed()


如果这不是您想要做的,请尝试更仔细地回答您的问题,并更详细地解释您想要什么。

Class System.Windows.Forms.Form有一个事件。您可以在那里处理表单的关闭

在表格1中:

public void form1_FormClosing(object sender, FormClosingEventArgs e) {
  form2.Close()

  // if we have the instances of form3, form4 here, then:
  // form3.Close()
  // form4.Close()
}
表格2:

public void form2_FormClosing(object sender, FormClosingEventArgs e) {
  form3.Close()
}

等等。

你的语法有点难理解。您的意思是希望能够一次一张地浏览整个表单序列,直到最后一个打开的表单关闭后才关闭应用程序?为什么要在关闭应用程序之前关闭所有表单,因为form1关闭将关闭所有其他表单?你的意思是什么?对不起,如果问题不清楚的话。我的英语不好。但是,我想关闭最后一张表格,然后关闭申请表。没关系。但你确实需要努力改进措辞(基于其他人提出的问题),并向回应者提供适当的反馈,帮助他们理解他们是否在正确的轨道上。谢谢,但这不是我所需要的,而不是你真正需要的。因此,感谢阅读。我想我已经找到了解决问题的方法。如果我打扰你,请不要理我
public void form2_FormClosing(object sender, FormClosingEventArgs e) {
  form3.Close()
}