# KeyDown 和 KeyUp 事件不支持

按下和释放某键时这两个事件依次发生。按下键时发生 KeyDown 事件,而释放键时发生 KeyUp 事件。

Sub object_KeyDown( KeyCode, Shift)
Sub object_KeyUp(KeyCode , Shift)

参数

KeyDown 和 KeyUp 事件的语法包含以下成分:

成分 说明
object 必需。一个有效的对象名。
KeyCode 必需。整数,代表被按下或释放的键的键代码。
Shift 必需。Shift、Ctrl 和 Alt 的状态。
设置

Shift 的设置如下:

常量 说明
fmShiftMask 1 按下 Shift。
fmCtrlMas 2 按下 Ctrl。
fmAltMask 4 按下 Alt。
说明

对于一个运行中的窗体,如果该窗体或窗体上的某个控件具有焦点,则按下键时 KeyDown 事件发生。KeyDown 和 KeyPress 事件交替重复发生,直至用户释放此键,此刻 KeyUp 事件发生。这个具有焦点的窗体或控件接收所有的按键操作。只有在窗体上没有控件或所有可视控件全部失效时,窗体才可能具有焦点。

应用宏中的 SendKeys 操作或 Visual Basic 中的 SendKeys 语句将按键操作发送到一个窗体或控件时,这些事件也会发生。 KeyDown 和 KeyUp 事件通常用于识别或区分以下各键:

  • 扩充的字符键,比如功能键。
  • 翻阅键,如 Home、End、PageUp、PageDown、向上、向下、向右、向左和 Tab 键。
  • 组合键和标准键盘组合键(Shift、Ctrl 或 Alt)。
  • 数字键区和键盘数字键。

在下列情况下,KeyDown 和 KeyUp 事件不发生:

  • 在带有命令按钮(其 Default 属性为 True)的窗体上按 Enter。
  • 在带有命令按钮(其 Cancel 属性为 True)的窗体上按 Esc。

在按下或发送一个 ANSI 键时,KeyDown 和 KeyPress 事件发生。KeyUp 事件发生在按下或发送该键所引起的任何控件事件之后。若一次击键导致了焦点从一个控件移到另一个控件,则对第一个控件发生 KeyDown 事件,对第二控件发生 KeyPress 和 KeyUp 事件。

和键盘相关的事件序列为:

  1. KeyDown
  2. KeyPress
  3. KeyUp

注意 KeyDown 和 KeyUp 事件仅用于窗体上的窗体和控件。要解释 ANSI 字符或找出与被按下的键相对应的 ANSI 字符,用 KeyPress 事件。

示例
应用于