如何吸收Keypress?

时间:2015-07-07 21:02:37

标签: ms-access access-vba keypress

在我的表单上,我有一个编辑控件。我已经设置了KeyDown事件以检测用户何时按 ,但我还想检测 shift + space 以便用户可以清除内容盒子。

功能有效 - 我可以检测到按键。问题是空间没有被吸收,因此空间字形仍然在控件中输入。

当我按 shift + space 时,如何吸收按键?

Private Sub FindBox_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyEnter: SearchForIt
        Case vbKeySpace:
            If Shift = 1 Then
                FindBox.Text = ""
                'here absorb keypress instead of sending space to control
                Exit Sub
            End If
    End Select
End Sub

2 个答案:

答案 0 :(得分:1)

你只需要设置KeyCode = 0的值即可。"吞下"关键,没有任何事情发生。

您还希望使用位掩码来查找是否存在正在按下的移位

Dim intShiftDown As Integer
intShiftDown = (Shift And acShiftMask) > 0 

    Case vbKeySpace:
        If intShiftDown Then
            FindBox.Text = ""
            'here absorb keypress instead of sending space to control
            KeyCode = 0
            Exit Sub

答案 1 :(得分:0)

哦,我明白了。 这很简单。

'here absorb keypress instead of sending space to control
KeyCode = 0