我有2个表单,form1
是菜单,按钮start
,settings
,quit
和form2
是程序运行的地方
我遇到的问题是,如果用户在form2
上使用 Alt + F4 ,它会关闭form2
,但form1
会在后台运行。我知道我可以使用form2
Closing
事件,因此它可以运行Environment.Exit(0)
,但该结束事件也会激活"如果我使用form2
"返回菜单"按钮,关闭form2
。我还尝试使用“菜单”按钮隐藏form2
,但是当我需要调用另一个form2
时,它会打开一个新的实例。
所以,总结一下: ALT + F4 应关闭整个应用程序,而不仅仅是当前表单,但不能使用form2
{ {1}}事件,因为我想以其他方式关闭Closing
。
答案 0 :(得分:1)
您可以使用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();
}
}