11

KeyEventArgs我对'sKeyCodeKeyDataand有疑问KeyValueKeyCode并且Keydata是 Keys 类型,但我不知道它们之间的区别是什么。因为KeyValue,我不知道它是什么——它有一个int类型,它是否返回char按下的键的值?

我对关键事件没有太多经验;任何关于它们如何运作以及如何使用它们的解释将不胜感激。

4

1 回答 1

19

KeyCode包含产生KeyUporKeyDown事件的键的数据。KeyData包含该键与 CTRL、SHIFT 或 ALT 的组合(如果按下了其中的任何一个)。

例子:

  • 按(并按住)CTRL。KeyDown会提高,KeyCodeKeys.ControlKeyKeyDataKeys.ControlKey | Keys.Control
  • 在按住 CTRL 的同时,按 SHIFT。KeyDown将被提出,KeyCode将是Keys.ShiftKeyKeyData将是Keys.ShifKey | Keys.Shift | Keys.Control

请注意,KeyDataandKeyCode可以包含Keys枚举中的任何值(例如Keys.AKeys.NumPad4Keys.Up)。请注意,当按下其中一个修改键时,它由 in 中的两个值表示KeyData(一个表示它们的键,一个表示修改值)。修饰符也可通过该Modifiers属性获得。

KeyValue将返回一个表示键的数值,本质上是一个表示在 中找到的值的整数KeyCode

于 2011-08-16T12:28:11.123 回答