使用ALT + F4关闭所有形式的

问题描述:

我有2种形式,form1是菜单,使用按钮startsettingsquitform2是程序运行。使用ALT + F4关闭所有形式的

我所面临的问题是,如果用户在使用form2Alt + F4,它关闭form2,但form1在后台运行。我知道我可以使用form2Closing事件,因此它可以运行Environment.Exit(0),但是如果使用form2“返回菜单”按钮关闭form2,该关闭事件也会“激活”。我也尝试用菜单按钮隐藏form2,但当我需要调用另一个form2时,它会打开一个新的实例。

因此,简言之:ALT + F4应该关闭整个应用程序,而不仅仅是目前的形式,但不能使用form2Closing事件,因为我想关闭form2一些其他的办法了。

+1

嗯,你可以使用'KeyDown'事件检测'ALT + F4'combination并采取相应的行动 – Pikoh

您可以使用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(); 
     } 
    } 
+0

'Environment.Exit'应作为最后的手段,因为它立即强行突然终止程序。 –

+0

@ LasseV.Karlsen你是对的。我只是使用OP提出的方法来关闭应用程序,并没有考虑到它。 – Pikoh

+0

谢谢! Lasse V. Karlsen,我知道它做了什么,但是当有人按下ALT + F4时,他们真的想要关闭应用程序。我正确处理退出按钮。 – Drake