【发布时间】:2010-09-24 00:10:24
【问题描述】:
KeyEventArgs和PreviewKeyDownEventArgs这两个键事件参数类各有两个属性KeyCode和KeyData,都是枚举类型Keys。
这两个属性有什么区别?它们中的值是否彼此不同?如果是,何时以及为什么?
【问题讨论】:
标签: .net winforms events event-handling
KeyEventArgs和PreviewKeyDownEventArgs这两个键事件参数类各有两个属性KeyCode和KeyData,都是枚举类型Keys。
这两个属性有什么区别?它们中的值是否彼此不同?如果是,何时以及为什么?
【问题讨论】:
标签: .net winforms events event-handling
KeyCode 是一个枚举,表示键盘上所有可能的键。 KeyData 是 KeyCode 与修饰符(Ctrl、Alt 和/或 Shift)的组合。
当你不关心修饰符时使用KeyCode,当你关心时使用KeyData。
【讨论】:
我观察到的不同之处在于KeyCode 中的值仅包含触发当前事件触发的键的Keys 枚举值。另一方面,KeyData 将包含 KeyCode 中的值与当时持有的任何修饰键(CTRL、SHIFT、ALT 等)的逻辑 OR。
【讨论】: