c# - KeyEventArgs.KeyData、KeyEventArgs.KeyCode 和 KeyEventArgs.KeyValue

标签 c# .net keycode key-value keyeventargs

我对 KeyEventArgsKeyCodeKeyData 以及 KeyValue 有疑问。 KeyCodeKeydata 都是Keys 类型,但我不知道它们有什么区别。对于 KeyValue,我不知道它是什么 -- 它有一个 int 类型,它是否返回按下的键的 char 值?

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

最佳答案

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

例子:

  • 按住(并按住)CTRL。 KeyDown 将被提升,KeyCode 将是 Keys.ControlKeyKeyData 将是 Keys.ControlKey | Keys.Control.
  • 在按住 CTRL 的同时,按 SHIFT。 KeyDown 将被提升,KeyCode 将是 Keys.ShiftKey 并且 KeyData 将是 Keys.ShifKey |键.Shift | Keys.Control.

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

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

关于c# - KeyEventArgs.KeyData、KeyEventArgs.KeyCode 和 KeyEventArgs.KeyValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078125/

相关文章:

c# - CNTK c# 逻辑回归 w 和 b 变量值

c# - 缓存 mysql 结果 C#

c# - 将 Guid 数组转换为 Object 数组

javascript - 为什么我在自定义验证后无法输入 % 符号

javascript - 捕获具有相同类别的输入的键码

c# - 使用 C# 自动化 GUI 测试

c# - 如何在 MVC 中绑定(bind)列表属性?

c# - ReSharper 在 "else"上自动插入大括号

.net - VB.NET 严格关闭在线选项

java - 不同键码之间的转换