按键事件受按钮影响

时间:2009-05-03 21:49:11

标签: c# events focus onkeypress

我是新来的,我对C#应用程序有一点问题。 我想捕捉关键事件。这首先不是问题,但是在我向表单添加了一些按钮之后,表单的按键事件忽略了箭头键并将焦点从一个按钮移动到下一个按钮。(键启动事件有效)是否有当我按住箭头键时,停止此操作并让他们做其他事情的方法?

2 个答案:

答案 0 :(得分:5)

将Form上的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);
}

答案 1 :(得分:1)

如果您不想要控件的常规按键功能,则需要在每个控件上设置按键事件,并将事件参数的processed属性设置为true,这样就不会冒泡直到内置的控制功能。