Control.ModifierKeys 不会在 Return/Enter 键上触发

发布于 2024-12-04 08:53:19 字数 476 浏览 0 评论 0原文

我试图检测用户何时在 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);
    }
}

I'm trying to detect when the user presses the Return key while in a Winforms textbox, but neither control statement below works when I use Keys.Enter and/or Keys.Return. It does work when I detect other keys such as Alt and Shift. What am I missing? They only vague lead that I have is that I'm testing this on a MacBook keyboard (running Windows), but surely those keys are mapped 100% correctly?

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);
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

口干舌燥 2024-12-11 08:53:19

尝试使用:

e.KeyCode == Keys.Enter

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

如果您只需要捕获按下“enter”而不按下任何键,请使用:

e.KeyData == Keys.Enter

Try using:

e.KeyCode == Keys.Enter

Control.ModifierKeys catch only if ctrl,alt,shift are pressed!

if you need catch only 'enter' pressed w/o any key pressed use:

e.KeyData == Keys.Enter
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文