2009-05-03 101 views
3

我在这里是新的,我有一个C#应用程序的小问题。 我想捕捉关键事件。这一开始并不是问题,但在向窗体添加一些按钮后,窗体的按下事件忽略了箭头键并将焦点从一个按钮移动到下一个按钮(按键事件起作用)是否存在方法来阻止这一点,并让他们做别的事情时,我拿着箭头键?按键事件受按钮影响

+0

检查下面的编辑。 – 2009-05-03 23:03:29

回答

5

将表单上的 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); 
} 
+0

我将KeyPreview设置为true,但按下方向键时仍然没有得到任何响应。除箭头外,其他所有按键似乎都在KeyDown事件中工作。 – sheitan 2009-05-03 22:08:02

1

如果你不想正常的关键下来,你将需要设置在每个控制键按下事件的控制功能,并设置处理属性的事件参数为真,这样它就不会冒泡到内置的控制功能。