使用 ALT+F4 关闭所有窗体
Using ALT+F4 to close all forms
我有2个表格,form1
是菜单,有按钮start
,settings
,quit
,form2
是程序所在的地方将 运行.
我面临的问题是,如果用户在 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();
}
}
我有2个表格,form1
是菜单,有按钮start
,settings
,quit
,form2
是程序所在的地方将 运行.
我面临的问题是,如果用户在 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();
}
}