【问题标题】:Control.ModifierKeys doesn't fire on Return/Enter keyControl.ModifierKeys 不会在 Return/Enter 键上触发
【发布时间】:2011-09-14 19:01:58
【问题描述】:

我试图检测用户何时在 Winforms 文本框中按下 Return 键,但是当我使用 Keys.Enter 和/或 Keys.Return 时,下面的控制语句都不起作用。当我检测到其他键(例如 Alt 和 Shift)时,它确实有效。我错过了什么?他们唯一的模糊线索是我正在 MacBook 键盘(运行 Windows)上测试它,但这些键肯定 100% 正确映射吗?

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
    if ((Control.ModifierKeys == Keys.Enter))
    {
        btnOK_Click(null, null);
    }

    if ((Control.ModifierKeys & Keys.Return) != 0)
    {
        btnOK_Click(null, null);
    }
}

【问题讨论】:

  • Enter 不是修饰键...

标签: c# winforms key detect


【解决方案1】:

尝试使用:

e.KeyCode == Keys.Enter

Control.ModifierKeys 仅在按下 ctrl、alt、shift 时才捕获!

如果您只需要按下“输入”键而不按下任何键:

e.KeyData == Keys.Enter

【讨论】:

  • 应该是 e.KeyData,当修饰符关闭时你通常不希望这样做(即 Alt+Enter)。
  • @Hans:通常我在按键事件中使用它。不清楚 OP 真正想要捕捉什么
猜你喜欢
  • 1970-01-01
  • 2013-08-20
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2016-10-22
相关资源
最近更新 更多