OptionButton.KeyPress 事件 (Access)

当用户按下并释放一个键或组合键对应于 ANSI 代码窗体或控件具有焦点时,将发生 KeyPress 事件。 通过使用 SendKeys 操作的宏或 Visual Basic 中的 SendKeys 语句的 ANSI 键击发送到窗体或控件,也会发生此事件。

语法

表达式KeyPress (KeyAscii)

表达 一个代表 OptionButton 对象的变量。

参数

名称 必需/可选 数据类型 说明
KeyAscii 必需 Integer 返回数值型 ANSI 键代码。 通过引用传递 KeyAscii 参数;更改该参数可向对象发送不同的字符。 将 KeyAscii 参数设为 0 可取消键击,以便对象不会认为已按下键。

备注

若要在该事件发生时运行宏或事件过程,请将 OnKeyPress 属性设置为宏的名称或 [事件过程]。

具有焦点的对象接收所有击键。 窗体只有在它没有控件或它所有可见的控件都失效时才能获得焦点。

窗体也能接收所有的键盘事件,甚至包括那些对控件发生,如果将窗体的 KeyPreview 属性设置为是。 通过设置此属性值,所有键盘事件首先都发生该窗体,然后该控件具有焦点。 无论哪个控件获得焦点,都可以在窗体中对按下的特定键作出响应。 例如,你可能希望组合键 Ctrl+X 始终对窗体执行相同的操作。

如果按住 ANSI 键, 则 KeyDownKeyPress 事件会反复 (KeyDownKeyPressKeyDownKeyPress 等) ,直到释放该键,然后发生 KeyUp 事件。

KeyPress 事件可以涉及任何可打印的键盘字符、Ctrl 键与标准字母表中的字符或特殊字符的组合,以及 Enter 或 Backspace 键。 使用 KeyDownKeyUp 事件过程来处理 KeyPress 事件无法识别的任何击键,例如功能键、导航键以及键盘修饰符 (Alt、Shift 或 Ctrl 键) 的任意组合。 与 KeyDown 事件和 KeyUp 事件, KeyPress 事件并不表明物理状态的键盘;相反,它表示对应于所按下的键或键组合的 ANSI 字符。

KeyPress 将解释的大写和小写的每个字符作为不同的键代码,因此,作为两个字符。

注意

Backspace 键是 ANSI 字符集的一部分,但 Delete 键不是。 如果使用 Backspace 键删除控件中的字符,则会导致 KeyPress 事件;如果使用 Delete 键,则不要。

KeyDownKeyPress 事件发生在按或发送一个 ANSI 键。 任何事件之后, KeyUp 事件发生按下或发送键引起控件。 如果键击导致焦点从一个控件移动到另一个控件,将发生 KeyDown 事件有关的第一个控件的 按键KeyUp 事件发生的第二个控件。

例如,如果移到一个新记录并在记录的第一个控件中键入字符,则下列事件发生:

  • 当前 (新的记录)
  • 输入 (适用于新记录中的第一个控件)
  • GotFocus (用于控制)
  • KeyDown (用于控制)
  • 按键 (用于控制)
  • 插入 (用于在窗体中的新记录)
  • 更改 (对于如果是文本框或组合框的控件)
  • KeyUp (用于控制)

示例

下面的示例在向文本框中键入文本时将所输入的文本转换为大写,每键入一个字符就转换一个。

若要尝试此示例,请将以下事件过程添加到包含名为 ShipRegion 的文本框的窗体中。

Private Sub ShipRegion_KeyPress(KeyAscii As Integer) 
 Dim strCharacter As String 
 
 ' Convert ANSI value to character string. 
 strCharacter = Chr(KeyAscii) 
 ' Convert character to upper case, then to ANSI value. 
 KeyAscii = Asc(UCase(strCharacter)) 
End Sub

支持和反馈

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