受按钮影响的按键事件

发布于 2024-07-20 01:07:29 字数 139 浏览 6 评论 0原文

我是新来的,我在使用 C# 应用程序时遇到了一些问题。 我想捕获按键按下事件。 一开始这不是问题,但在我向表单添加一些按钮后,表单的按键事件会忽略箭头键并将焦点从一个按钮移动到下一个按钮。(按键事件有效)是否有当我按住箭头键时如何阻止这个并让他们做其他事情?

I'm new around here and i have a little problems with a C# application.
I want to capture the key down event. This wasn't a problem at first but after i added some buttons to the form, the key down event of the form ignores the arrow keys and moves the focus from one button to the next.(The key up event works) Is there a way to stop this and make them do something else when i hold the arrow keys?

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

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

发布评论

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

评论(2

笑梦风尘 2024-07-27 01:07:29

设置 KeyPreview 属性在表单上设置为 true。 这将允许表单除了子控件之外还可以看到 keydown 事件。

将其添加到您的表单中...

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData.Equals(Keys.Right))
    {
        MessageBox.Show("Right Key Pressed!");
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

Set the KeyPreview property on the Form to true. That will allow the form to see the keydown event in addition to the child controls.

Add this to your Form ...

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData.Equals(Keys.Right))
    {
        MessageBox.Show("Right Key Pressed!");
    }

    return base.ProcessCmdKey(ref msg, keyData);
}
你的呼吸 2024-07-27 01:07:29

如果您不希望控件具有正常的按键功能,则需要在每个控件上设置按键事件,并将事件参数的handled属性设置为true,这样它就不会冒泡到内置控制功能。

If you don't want the normal key down functionality for the controls you will need to set the key down event on each control, and set the handled attribute for the event arguments to be true, that way it doesn't bubble up to the built in control functionality.

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