KeyDown、KeyUp 事件
在用户按下和释放键时按顺序发生。 当用户按下键时,KeyDown 事件发生。 当用户释放键时,KeyUp 事件发生。
语法
Private Sub对象 _KeyDown ( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
Private Sub对象 _KeyUp ( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
KeyDown 和 KeyUp 事件语法具有以下部分:
Part | 说明 |
---|---|
object | 必填。 一个有效对象名称。 |
KeyCode | 必填。 一个表示已按下或已释放的键的键代码的整数。 |
Shift | 必填。 Shift、Ctrl 和 Alt 键的状态。 |
设置
Shift 的设置为:
常量 | 值 | 说明 |
---|---|---|
fmShiftMask | 1 | 已按下 Shift 键。 |
fmCtrlMask | 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 事件不会发生:
用户在窗体上按 Enter,其命令按钮 的 Default 属性设置为 True。
用户在窗体上按 Esc,其“ 取消” 属性设置为 True 的命令按钮。
当您按或发送 ANSI 键时,将发生 KeyDown 和 KeyPress 事件。 KeyUp 事件在通过按或发送此键导致的控件的任何事件之后发生。 如果键击导致焦点从一个控件移动到另一个控件,则对于第一个控件,将发生 KeyDown 事件,而对于第二个控件,将发生 KeyPress 和 KeyUp 事件。
与键盘相关的事件的顺序为:
- KeyDown
- KeyPress
- KeyUp
注意
[!注释] KeyDown 和 KeyUp 事件仅适用于表单和表单上的控件。 若要解释 ANSI 字符或查找与已按的键对应的 ANSI 字符,请使用 KeyPress 事件。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。