使用键盘事件(Windows 窗体 .NET)

大多数 Windows 窗体程序通过处理键盘事件处理键盘输入。 本文提供对键盘事件的概述,包括有关何时使用每个事件和向每个事件提供的数据的详细信息。 有关一般事件的详细信息,请参阅事件概述(Windows 窗体 .NET)

重要

面向 .NET 7 和 .NET 6 的桌面指南文档正在撰写中。

键盘事件

Windows 窗体提供了两个在用户按下键盘键时发生的事件和一个在用户释放键盘键时发生的事件:

  • KeyDown 事件发生一次。
  • 用户按住相同的键时,KeyPress 事件可发生多次。
  • 用户释放某个键时,KeyUp 事件发生一次。

用户按某个键时,Windows 窗体会根据键盘消息指定的是字符键还是物理键来确定引发哪个事件。 有关字符键和物理键的详细信息,请参阅键盘概述、键盘事件

下表介绍了这三种键盘事件:

键盘事件 说明 结果
KeyDown 用户按下物理键时,引发此事件。 KeyDown 的处理程序接收:

KeyPress 当所按的某个键或多个键生成一个字符时,则引发此事件。 例如,用户按 SHIFT 和小写的“a”键将会生成大写字母“A”字符。 KeyPressKeyDown 后引发。

  • KeyPress 的处理程序接收:
  • 一个 KeyPressEventArgs 参数,它包含所按的键的字符代码。 此字符代码对每个字符键和修改键组合都是唯一的。

    例如,“A”键将生成:

    • 字符代码 65(如果与 SHIFT 键一起按下)
    • 或 CAPS LOCK 键 97(如果单独按下),
    • 以及 1(如果与 CTRL 键一起按下)。
KeyUp 用户释放物理键时,将引发此事件。 KeyUp 的处理程序接收:

  • 一个 KeyEventArgs 参数:

    • 它提供 KeyCode 属性(该属性指定一个物理键盘按钮)。
    • Modifiers 属性(SHIFT、CTRL 或 ALT)。
    • KeyData 属性(它结合了键代码和修饰符)。

另请参阅