KeyPress 事件

当用户按某个 ANSI 键时发生。

语法

Private Sub对象 _KeyPress ( ByValKeyANSIAs MSForms.ReturnInteger)

“KeyPress”事件语法包含以下部分:

Part 说明
object 必填。 有效的对象。
KeyANSI 必填。 表示标准数值 ANSI 键码的整数值。

备注

KeyPress 事件在用户按在运行的窗体上产生可键入的字符(ANSI 键)的键时发生,而该窗体或该窗体上的控件具有焦点。 该事件可在释放键之前发生,也可在释放键之后发生。 如果在宏中使用 SendKeys 操作或 Visual Basic 中的 SendKeys 语句 将 ANSI 击键发送到窗体或控件,也会发生此事件。

按以下任意键时,KeyPress 事件都可发生:

  • 任何可打印的键盘字符
  • CTRL 与标准字母表中的字符结合使用
  • CTRL 与任何特殊字符结合使用
  • Backspace
  • Esc

在以下条件下,KeyPress 事件不会发生:

  • 按 TAB。
  • 按 Enter。
  • 按箭头键。
  • 击键导致焦点从一个控件移动到另一个控件时。

注意

[!注释] BACKSPACE 是 ANSI 字符集的一部分,但 DELETE 不是。 使用 BACKSPACE 删除控件中的字符会导致 KeyPress 事件;使用 DELETE 删除字符不会。

用户按住产生 ANSI 键码的键时,KeyDown 和 KeyPress 事件交替重复。 用户释放键时,KeyUp 事件发生。 带有焦点的窗体或控件接收所有击键。 窗体仅可在其没有控件或其所有可视控件均被禁用时具有焦点。

KeyPress 事件的默认操作是处理对应于所按的键的事件代码。 KeyANSI 指示对应于所按的键或键组合的 ANSI 字符。 KeyPress 事件将每个字符的大写和小写解释为单独的键代码,因此解释为两个单独的字符。

若要响应键盘的物理状态,或处理 KeyPress 事件未识别的击键(如功能键、定位键以及这些键与键盘修饰符(ALT、SHIFT 或 CTRL)的任何组合),请使用 KeyDown 和 KeyUp 事件程序。

键盘相关事件的序列是:

  1. KeyDown
  2. KeyPress
  3. KeyUp

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。