我对 KeyEventArgs
的 KeyCode
和 KeyData
以及 KeyValue
有疑问。
KeyCode
和Keydata
都是Keys 类型,但我不知道它们有什么区别。对于 KeyValue
,我不知道它是什么 -- 它有一个 int
类型,它是否返回按下的键的 char
值?
我对关键事件没有太多经验;非常感谢任何关于它们如何运作以及如何使用它们的解释。
最佳答案
KeyCode
包含产生 KeyUp
或 KeyDown
事件的键的数据。 KeyData
包含该键与 CTRL、SHIFT 或 ALT(如果其中任何一个被按下)的组合。
例子:
- 按住(并按住)CTRL。
KeyDown
将被提升,KeyCode
将是Keys.ControlKey
,KeyData
将是Keys.ControlKey | Keys.Control
. - 在按住 CTRL 的同时,按 SHIFT。
KeyDown
将被提升,KeyCode
将是Keys.ShiftKey
并且KeyData
将是Keys.ShifKey |键.Shift | Keys.Control
.
注意 KeyData
和 KeyCode
可以包含 Keys
中的任何值枚举(例如 Keys.A
、Keys.NumPad4
或 Keys.Up
)。请注意,当按下修饰键之一时,它由 KeyData
中的两个值表示(一个用于键,一个用于修饰值)。修饰符也可以通过 Modifiers
获得。属性(property)。
KeyValue
将返回一个表示键的数值,本质上是一个表示在 KeyCode
中找到的值的整数。
关于c# - KeyEventArgs.KeyData、KeyEventArgs.KeyCode 和 KeyEventArgs.KeyValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078125/