gpt4 book ai didi

forms - MS Access 中表单的 'key preview' 属性是什么意思?

转载 作者:行者123 更新时间:2023-12-02 03:27:32 25 4
gpt4 key购买 nike

我现在正在 MS Access 中编程,在查看表单的属性时,我遇到了一个名为“关键预览”的属性。 MS Access 文档说明它用于在控件的键盘事件之前调用表单的键盘事件。

我不确定这意味着什么以及为什么可以使用此属性?

最佳答案

如果 KeyPreview 属性设置为 true,则窗体将在控件之前接收键盘事件,从而使您有机会在窗体级别对其执行某些操作。

现在,假设您有一个包含许多控件的表单。
想象一下,您希望允许用户按键盘上的 F2 键来执行某些操作,例如打开另一个表单、播放一些音乐或其他任何操作。

在 Access 中,与大多数 UI 编程一样,任何时候只有一个控件可以接收焦点。因此,如果焦点位于文本框上,当您按 F2 时,该文本框键盘事件将触发。
您可以从文本框事件中捕获该按键,但如果用户从另一个控件按下 F2,则不会检测到它,除非您还检测到从该控件本身按下了 F2。

因此,为了使事情变得更简单,您可以将表单设置为首先接收键盘事件,然后再将它们传递到具有焦点的控件,从而使您有机会检测到用户在单个位置按下了 F2,而不必连接每个控件来检测该按键。

示例

将单个文本框 mytextbox 添加到新表单。在表单的后面代码中,添加以下事件以捕获表单和文本框的键盘事件:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "Form_KeyDown(keycode:" & KeyCode & ", Shift:" & Shift & ")"
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
Debug.Print "Form_KeyPress(KeyAscii:" & KeyAscii & ")"
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print "Form_KeyUp(keycode:" & KeyCode & ", Shift:" & Shift & ")"
End Sub

Private Sub mytextbox_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "mytextbox_KeyDown(keycode:" & KeyCode & ", Shift:" & Shift & ")"
End Sub

Private Sub mytextbox_KeyPress(KeyAscii As Integer)
Debug.Print "mytextbox_KeyPress(KeyAscii:" & KeyAscii & ")"
End Sub

Private Sub mytextbox_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print "mytextbox_KeyUp(keycode:" & KeyCode & ", Shift:" & Shift & ")"
End Sub

现在,打开表单并键入一个键。
如果您按Q键,您应该在立即窗口中看到类似这样的内容:

Control Keyboard events

只有文本框收到事件。

现在,将 KeyPreview 属性设置为 true(是),当您打开表单并点击 Q 时,您应该会看到表单首先收到键盘事件。

Form and Control Keyboard events

关于forms - MS Access 中表单的 'key preview' 属性是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com