从密钥数据中提取密钥代码

本文关键字:密钥 代码 提取 数据 | 更新日期: 2023-09-27 18:31:25

如何从System.Windows.Forms.Keys值中提取KeyCode标志(不带修饰符的System.Windows.Forms.Keys值)本身?

假设Keys有标志Keys.ControlKeys.ShiftKeys.A。我想提取Keys.A标志,但Keys的标志(包括修饰符)是可变的。

从密钥数据中提取密钥代码

密钥枚举已经有一个掩码,它的名字不会让你感到惊讶:

  Keys code = keyData & Keys.KeyCode;

它的基础值是0xffff,有效地屏蔽了修饰符状态位。 类似的掩码值可用于隔离修饰符位,它是 Keys.Modifiers (0xffff0000)。

我认为这就是你想要的:

Keys excludeModifier = yourKey & ~Keys.Control & ~Keys.Shift & ~Keys.Alt;