使用 ALT+F4 关闭所有窗体

Using ALT+F4 to close all forms

我有2个表格,form1是菜单,有按钮startsettingsquitform2是程序所在的地方将 运行.

我面临的问题是,如果用户在 form2 上使用 Alt+F4,它会关闭 form2,但是 form1 运行s 在后台。我知道我可以使用 form2 Closing 事件,所以它可以 运行 和 Environment.Exit(0),但是如果我使用 [=14],关闭事件也会 "activates" =] "Back to Menu" 按钮,关闭 form2。我也试过用菜单按钮隐藏 form2,但是当我需要调用另一个 form2 时,它会打开它的一个新实例。

所以,总结一下: ALT+F4 应该关闭整个应用程序,而不仅仅是当前窗体,但不能使用form2 Closing 事件,因为我也想以其他方式结束 form2

您可以为此使用 KeyDown 事件。基本上,您抓住那个组合键,告诉系统您将要处理它,这样它就不会传递给它,最后关闭应用程序。要关闭它,最好使用 Application.Exit() 而不是 Environment.Exit。你可以看到为什么 here 例如:

    private void Form2_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Alt && e.KeyCode == Keys.F4)
        {
            e.Handled = true;
            //Close your app
            Application.Exit();
        }
    }