【问题标题】:Extract KeyCode from KeyData从 KeyData 中提取 KeyCode
【发布时间】:2013-09-15 10:43:02
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net input key


    【解决方案1】:

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

      Keys code = keyData & Keys.KeyCode;
    

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

    【讨论】:

      【解决方案2】:

      我想这就是你想要的:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        相关资源
        最近更新 更多