【问题标题】:Using ALT+F4 to close all forms使用 ALT+F4 关闭所有表单
【发布时间】:2016-06-10 10:58:14
【问题描述】:

我有 2 个表单,form1 是菜单,带有按钮 startsettingsquitform2 是程序将运行的位置。

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

所以,总而言之: ALT+F4 应该关闭整个应用程序,而不仅仅是当前表单,而且不能使用form2 Closing 事件,因为我也想以其他方式关闭form2

【问题讨论】:

  • 好吧,您可以使用KeyDown 事件来检测Alt+F4combination 并采取相应措施

标签: c# winforms formclosing


【解决方案1】:

您可以为此使用KeyDownevent。基本上,你抓住那个组合键,告诉系统你要处理它,这样它就不会被传递给它,最后关闭应用程序。要关闭它,最好使用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();
        }
    }

【讨论】:

  • Environment.Exit 应作为最后手段使用,因为它会立即强制突然终止程序。
  • @LasseV.Karlsen 你是对的。我只是用OP提出的方法关闭应用,没有考虑。
  • 谢谢!还有 Lasse V. Karlsen,我知道它的作用,但是当有人按下 ALT+F4 时,他们真的想关闭应用程序。我正确处理了退出按钮。
猜你喜欢
  • 2010-09-06
  • 2018-10-31
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多