KeyEventArgs.KeyData, KeyEventArgs.KeyCode and KeyEventArgs.

本文关键字:KeyEventArgs and KeyCode KeyData | 更新日期: 2023-09-27 18:05:48

我对KeyEventArgsKeyCodeKeyDataKeyValue有疑问。KeyCodeKeydata是Keys类型,但我不知道它们之间有什么区别。对于KeyValue,我不知道它是什么——它有int类型,它会返回按下的键的char值吗?

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

KeyEventArgs.KeyData, KeyEventArgs.KeyCode and KeyEventArgs.

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

示例:

  • 按住CTRL键。KeyDown将被提升,KeyCode将被提升为Keys.ControlKeyKeyData将被提升至Keys.ControlKey | Keys.Control
  • 在按住CTRL键的同时,按SHIFT键。KeyDown将被提升,KeyCode将被提升为Keys.ShiftKeyKeyData将被提升至Keys.ShifKey | Keys.Shift | Keys.Control

注意,KeyDataKeyCode可以包含Keys枚举中的任何值(例如Keys.AKeys.NumPad4Keys.Up(。请注意,当按下其中一个修改器键时,它由KeyData中的两个值表示(一个用于它们键,一个用于修改器值(。修改器也可通过Modifiers属性使用。

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