【问题标题】:Esc key event not getting fired in winformsEsc 键事件未在 Winforms 中触发
【发布时间】:2013-03-29 18:33:11
【问题描述】:

我的 Esc 键事件似乎没有被触发。

我有两种形式。

在form1按钮点击事件

Form2 frm2 = new Form2();
frm2.show();

在表格 2 中,我有一个名为

的事件
    private void frm2_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        this.Hide();

    }

这是怎么回事?

【问题讨论】:

标签: c# winforms events


【解决方案1】:

如果焦点在子控件中,则需要设置

frm2.KeyPreview = true;

在表单的事件处理程序中处理关键事件。

或在表单的加载事件处理程序或构造函数中:

this.KeyPreview = true;

【讨论】:

  • 嗨,谢谢您的快速回复.. 但我可以知道我把这个放在哪里吗?在 form1 或 form2 中?实际上我把它放在这样的form2页面加载事件中.. form2 frm2 = new form2(); frm2.keypreview = true;但结果还是一样
  • @Nagu:如果你在加载事件处理程序中这样做,你所做的就是创建一个 KeyPreview == true 的表单的 new 实例。那不是你想做的。把“this.KeyPreview = true;”在表单的负载处理程序或构造函数中。
  • 嘿,它工作正常,但问题是当我放置调试器时只有它在工作,否则它不工作..这是什么逻辑?
  • @Nagu:很难说。不适合我。
  • @Nagu:您是否为表单设置了 CancelButton?如果是这样,这可能是原因(见 Henk 的回答)
猜你喜欢
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2011-11-18
相关资源
最近更新 更多