2009-10-07 82 views
0

沒有人知道我可以如何設置一個事件處理程序,以便如果按鍵Alt + Shift + Ctrl +一個字母會做點什麼?在c#winforms中的按鍵組合

+0

檢查這個問答:http://stackoverflow.com/questions/865774/c-getting-the-correct-keys-從-keyeventargs-keydata中按下 – 2009-10-07 21:24:37

回答

4
override void OnKeyDown(object sender, KeyEventArgs e) 
{ 
    bool myKeysPressed = (e.KeyCode == Keys.A) && 
         ((e.Modifiers & Keys.Alt) == Keys.Alt) && 
         ((e.Modifiers & Keys.Shift) == Keys.Shift) && 
         ((e.Modifiers & Keys.Control) == Keys.Control); 
} 
3

薩麥斯作爲Ed的,但較短的和更易讀)

override void OnKeyDown(object sender, KeyEventArgs e) 
{ 
    bool myKeysPressed = (e.KeyCode == Keys.A) && 
          e.Alt && 
          e.Shift && 
          e.Control; 
} 
+0

爲什麼你需要重寫?是不是可以添加一個事件處理程序到keydown事件? – Grant 2009-10-07 22:01:29

+1

是的,你可以在事件處理程序中做同樣的事情 – 2009-10-07 23:21:52

+0

啊,甚至不知道那些屬性存在。 @Grant:如果此代碼位於目標對象的類定義內部,則將覆蓋該方法,否則使用該事件。 – 2009-10-07 23:43:28