【发布时间】:2013-09-15 10:43:02
【问题描述】:
如何从 System.Windows.Forms.Keys 值中提取 KeyCode 标志(没有修饰符的 System.Windows.Forms.Keys 值)本身?
假设Keys 具有标志Keys.Control、Keys.Shift 和Keys.A。我想提取Keys.A 标志,但Keys 的标志(包括修饰符)是可变的。
【问题讨论】:
如何从 System.Windows.Forms.Keys 值中提取 KeyCode 标志(没有修饰符的 System.Windows.Forms.Keys 值)本身?
假设Keys 具有标志Keys.Control、Keys.Shift 和Keys.A。我想提取Keys.A 标志,但Keys 的标志(包括修饰符)是可变的。
【问题讨论】:
Keys 枚举已经有一个掩码,它的名字不会让你感到惊讶:
Keys code = keyData & Keys.KeyCode;
它的底层值为 0xffff,有效地屏蔽了修饰符状态位。类似的掩码值可用于隔离修饰符位,它是 Keys.Modifiers (0xffff0000)。
【讨论】:
我想这就是你想要的:
Keys excludeModifier = yourKey & ~Keys.Control & ~Keys.Shift & ~Keys.Alt;
【讨论】: