【问题标题】:What is meant by 'key preview' property of a form in MS Access?MS Access 中表单的“键预览”属性是什么意思?
【发布时间】:2012-10-22 18:21:23
【问题描述】:

我现在正在使用 MS Access 进行编程,在查看表单属性时,我遇到了一个名为“key preview”的属性。 MS Access 文档告诉它用于在控件的键盘事件之前为表单调用键盘事件。

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

【问题讨论】:

    标签: forms ms-access ms-access-2010 keypreview


    【解决方案1】:

    如果 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 键,您应该会在即时窗口中看到类似这样的内容:

    只有文本框接收到事件。

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

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      相关资源
      最近更新 更多