2009-05-03 137 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

如果你不想正常的關鍵下來,你將需要設置在每個控制鍵按下事件的控制功能,並設置處理屬性的事件參數爲真,這樣它就不會冒泡到內置的控制功能。