Difference between Keys.Shift and Keys.ShiftKey
在我的应用程序中,我检测何时按下了键,并查看修饰符是否为Shift键,但是Keys枚举器具有Shift和ShiftKey。
似乎该事件始终在发送Keys.Shift,但是是否会使用Keys.ShiftKey?
(并且相同的问题适用于Keys.Control和Keys.ControlKey)
感谢您的任何投入。
Keys.Shift是修饰键(用于组合键),而Keys.ShiftKey是常规键代码,与Keys枚举中的大多数其他键一样。
-
这是否意味着可以通过特殊的鼠标或其他外围设备触发Keys.Shift,而Keys.ShiftKey不能呢?
-
这很有道理。 谢谢你的帮助。 ps。 是否有理由让它们的枚举值都相同?
-
@Brian @Ryan如果查看KeyEventArgs,将使用Keys.Shift来检查KeyEventArgs.Modifiers,而使用Keys.ShiftKey来检查KeyEventArgd.KeyCode。 查看MSDN中的示例。
Keys.ShiftKey代表实际的换档键,而Keys.Shift代表换档修改本身。 可以像其他键代码一样使用Keys.ShiftKey来检查是否按下,但是您不能检查Keys.Shift是否被按下,因为它表示状态而不是对象。 我希望这是有道理的。
看这里:
http://msdn.microsoft.com/zh-CN/library/system.windows.forms.keys.aspx