C# 当一个窗体关闭时退出所有窗体

C# 当一个窗体关闭时退出所有窗体,c#,winforms,C#,Winforms,嘿。 当我说close时,我不是说close()方法,而是当用户点击窗口的close按钮时。我有多个表单,显示和隐藏取决于用户是否登录或即将登录等等。当用户最终关闭其中一个表单时,我希望它们全部退出。现在,当用户关闭表单时,程序仍在运行,因为后台隐藏了一个表单 关闭时如何退出,我记得我是用Java做的,谢谢。调用应用程序.exit()方法。调用应用程序.exit()方法。如果知道应用程序的其余部分可能无法正常关闭,请只调用Application.exit()。如果其他打开的表单需要在其FormC

嘿。 当我说close时,我不是说close()方法,而是当用户点击窗口的close按钮时。我有多个表单,显示和隐藏取决于用户是否登录或即将登录等等。当用户最终关闭其中一个表单时,我希望它们全部退出。现在,当用户关闭表单时,程序仍在运行,因为后台隐藏了一个表单


关闭时如何退出,我记得我是用Java做的,谢谢。

调用
应用程序.exit()
方法。

调用
应用程序.exit()
方法。

如果知道应用程序的其余部分可能无法正常关闭,请只调用Application.exit()。如果其他打开的表单需要在其FormClosing事件中执行某些操作,则无法完成此操作。使用Application.Exit()是一种“糟糕的代码味道”,这意味着您的设计有问题

执行所有表单所订阅的集中式事件处理,以便在应用程序关闭时通知它们。谷歌知道,还有很多其他方法可以处理这个问题:)

只调用Application.Exit(),如果您知道,应用程序的其余部分可能会意外关闭。如果其他打开的表单需要在其FormClosing事件中执行某些操作,则无法完成此操作。使用Application.Exit()是一种“糟糕的代码味道”,这意味着您的设计有问题

执行所有表单所订阅的集中式事件处理,以便在应用程序关闭时通知它们。谷歌知道还有很多其他方法可以解决这个问题:)

private void btnExit\u Click(objectsender,EventArgs e)
{
对于(int i=Application.OpenForms.Count-1;i>=0;i--)
{
if(Application.OpenForms[i].Name!=“菜单”)
Application.OpenForms[i].Close();
}
}
private void btnExit\u单击(对象发送者,事件参数e)
{
对于(int i=Application.OpenForms.Count-1;i>=0;i--)
{
if(Application.OpenForms[i].Name!=“菜单”)
Application.OpenForms[i].Close();
}
}
调用环境。退出(0);方法

调用环境。退出(0);方法


我尝试解决相同的问题,但效果很好:

  private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }

我尝试解决相同的问题,但效果很好:

  private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }

处理Form.FormClosed()事件。您可以在Form\u Closing事件处理程序中执行此操作。处理Form.FormClosed()事件。您可以在Form\u Closing事件处理程序中执行此操作。张贴代码通常不被视为完整答案。你至少应该尝试解释一下你的代码片段是做什么的。这在其他应用程序的dll扩展上非常有效,因为主应用程序
Application.Exit()中存在延迟
在主应用程序关闭后,可能会让第三方表单在短时间内打开。张贴代码通常不被视为完整答案。您至少应该尝试解释您的代码片段的作用。这对于其他应用程序的dll扩展非常有效,因为主应用程序中的延迟
Application.Exit()
可能会在主应用程序关闭后让第三方表单在短时间内打开。