2011-04-08 83 views
2

我知道如何获得在C#中按下哪个修饰键,但我不知道如何才能真正检查是否按下了任何修饰键。我需要在KeyUp事件中检查它,是否有可能以其他方式执行诸如if(e.KeyCode != Keys.Control && e.KeyCode != Keys.Alt && ...)之类的操作?谢谢。确定修改键是否被按下

回答

8
if ((Control.ModifierKeys & Keys.Shift) != 0) 

将帮助您检测修饰键(例如CTRL转变)是否被按下。 检查下面的帖子以供参考:

How to detect the currently pressed key?

+0

用正确的“&”运算符替换“&&”运算符。 (“Error:Operator'&&'不能应用于'System.Windows.Forms.Keys'和'System.Windows.Forms.Keys'类型的操作数) – AnAurelian 2012-11-22 12:29:04

1

KeyEventArgs类具有您可以查看属性。例如,要查看是否按下Alt键,你可以写:

if (e.Alt) 
{ 
    // Alt key was pressed 
} 
1

,以确保没有修改键被按下就可以检查是否ModifierKey等于Keys.None。

if (ModifierKeys == Keys.None) ...