我对KeyEventArgs
的KeyCode
、KeyData
和KeyValue
有疑问。
KeyCode
和Keydata
都是Keys类型,但我不知道它们之间有什么区别。至于KeyValue
,我不知道它是什么——它是一个int
类型,它返回按下的键的char
值吗?
我没有太多关于按键事件方面的经验;任何关于它们如何运作以及如何使用它们的解释将不胜感激。
我对KeyEventArgs
的KeyCode
、KeyData
和KeyValue
有疑问。
KeyCode
和Keydata
都是Keys类型,但我不知道它们之间有什么区别。至于KeyValue
,我不知道它是什么——它是一个int
类型,它返回按下的键的char
值吗?
我没有太多关于按键事件方面的经验;任何关于它们如何运作以及如何使用它们的解释将不胜感激。
KeyCode
包含产生 KeyUp
或 KeyDown
事件的按键数据。而 KeyData
则包含该按键加上 CTRL、SHIFT 或 ALT 等修饰键的组合,如果这些键中有任何一个被按下,则会包含在内。
例如:
KeyDown
事件,KeyCode
的值为 Keys.ControlKey
,而 KeyData
的值为 Keys.ControlKey | Keys.Control
。KeyDown
事件,KeyCode
的值为 Keys.ShiftKey
,而 KeyData
的值为 Keys.ShifKey | Keys.Shift | Keys.Control
。注意,KeyData
和 KeyCode
可以包含枚举类型 Keys
中的任何值(例如 Keys.A
、Keys.NumPad4
或 Keys.Up
)。当其中一个修饰键被按下时,它将由 KeyData
中的两个值来表示(一个为按键,另一个为修饰键的值)。而修饰键也可以通过 Modifiers
属性来获取。
KeyValue
将返回表示按键的数字值,本质上是代表 KeyCode
中找到的值的整数。