48

两个键事件参数类KeyEventArgsPreviewKeyDownEventArgs都有两个属性,KeyCodeKeyData,它们都是枚举类型 Keys。

这两个属性有什么区别?它们中的值是否彼此不同?如果是这样,何时以及为什么?

4

2 回答 2

56

KeyCode是一个枚举,代表键盘上所有可能的键。 KeyDataKeyCode与修饰符(Ctrl、Alt 和/或 Shift)的组合。

KeyCode当你不关心修饰符时使用,当你关心KeyData时。

于 2008-11-25T17:20:38.503 回答
9

我观察到的不同之处在于,in 中的值KeyCode仅包含Keys触发当前事件触发的键的枚举值。 KeyData另一方面,将包含值KeyCode与当时保留的任何修改键(CTRL、SHIFT、ALT 等)的逻辑 OR。

于 2008-11-25T17:22:56.827 回答