2009-10-07 21 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