2011-09-14 61 views
1

我試圖檢測用戶何時在Winforms文本框中按下Return鍵,但下面的控制語句在使用Keys.Enter時工作在和/或Keys.Return。當我檢測到其他鍵(如Alt和Shift)時,它確實有效。我錯過了什麼?他們只是模糊的領導,我正在測試它在MacBook鍵盤(運行Windows)上,但肯定這些鍵映射100%正確?Control.ModifierKeys不會觸發Return/Enter鍵

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

輸入不是一個修改鍵... –

回答

2

嘗試使用:只有

e.KeyCode == Keys.Enter 

Control.ModifierKeys捕捉如果CTRL,ALT,移位壓!

,如果您需要只捕獲 'ENTER' 鍵按下W/O任何按鍵按下使用:

e.KeyData == Keys.Enter 
+1

應該是'e.KeyCode' –

+0

@adrift:謝謝,修改爲 –

+0

應該是e.KeyData,當修改器關閉時(例如Alt + Enter),您通常不希望這樣做。 –