如何从System.Windows.Forms.Keys
值中提取KeyCode标志(没有修饰符的System.Windows.Forms.Keys
值)?
假设Keys
有标记Keys.Control
,Keys.Shift
和Keys.A
。我想提取Keys.A
标志,但Keys
的标志(包括修饰符)是可变的。
答案 0 :(得分:8)
Keys枚号已经有了一个掩码,它的名字不会让你感到惊讶:
Keys code = keyData & Keys.KeyCode;
它的基础值是0xffff,有效地屏蔽了修饰符状态位。一个类似的掩码值可用于隔离修饰符位,它是Keys.Modifiers(0xffff0000)。
答案 1 :(得分:2)
我认为这就是你想要的:
Keys excludeModifier = yourKey & ~Keys.Control & ~Keys.Shift & ~Keys.Alt;