# 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 事件。
和键盘相关的事件序列为:
- KeyDown
- KeyPress
- KeyUp
注意 KeyDown 和 KeyUp 事件仅用于窗体上的窗体和控件。要解释 ANSI 字符或找出与被按下的键相对应的 ANSI 字符,用 KeyPress 事件。
示例
应用于