使用 KeyPreview 属性,可以指定是否在控件的键盘事件过程之前激活窗体级别的键盘事件过程。Boolean 型,可读写。
expression.KeyPreview
expression 必需。返回“应用于”列表中的一个对象的表达式。
KeyPreview 属性使用以下设置:
设置 |
Visual Basic |
说明 |
是 |
True |
窗体先接收键盘事件,然后活动的控件才接收到键盘事件。 |
否 |
False |
(默认值)只有活动的控件才接收到键盘事件。 |
注释 可以使用窗体的属性表、宏或 Visual Basic 设置 KeyPreview 属性。
使用 KeyPreview 属性可以创建窗体的键盘处理过程。例如,当应用程序使用功能键时,将 KeyPreview 属性设为 True,则允许处理窗体级别的键击事件,而不是为每个可能接收到键击事件的控件都编写代码。
如果只需要在窗体级别上处理键盘事件,并且要避免控件接收到键盘事件,请在窗体的 KeyPress 事件过程中将 KeyAscii 参数设为 0,并在窗体的 KeyDown 及 KeyUp 事件过程中将 KeyCode 设为 0。
如果窗体中没有任何可见的或有效的控件,该窗体将自动接收所有的键盘事件。
在下面的示例中,KeyPreview 属性在窗体的 Load 事件过程中将设为 True,这样可以使窗体在控件接收到键盘事件之前首先接收键盘事件,然后窗体的 KeyDown 事件将检查 KeyCode 参数值以确定是否已按下了 F2、F3 或 F4。
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF2
' Process F2 key events.
Case vbKeyF3
' Process F3 key events.
Case vbKeyF4
' Process F4 key events.
Case Else
End Select
End Sub