从KeyData中提取KeyCode

osv*_*ein 1 .net c# key input

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

让我们说Keys有旗帜Keys.Control,Keys.ShiftKeys.A.我想提取Keys.A标志,但是Keys标志(包括修饰符)是可变的.

Han*_*ant 8

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

  Keys code = keyData & Keys.KeyCode;
Run Code Online (Sandbox Code Playgroud)

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