如何使用vbKeyShift和vbKeyTab的组合

问题描述 投票:1回答:1

我在subForms上有两个mainFormsubForm1包含ComboBox1,我已插入以下代码,以便如果我按Tab键,它将setFocussubForm2

Private Sub ComboBox1_KeyDown(KeyCode as Integer, Shift as Integer)
     Select Case KeyCode
             Case  = vbKeyTab
              KeyCode = 0
              Me.parent.subForm2.SetFocus
     End Select
End Sub

它工作正常。但是,当我按下Shift + Tab时,我仍然会得到与上面代码相​​同的行为。在没有上述代码的情况下,当我按下Shift + Tab时,focus会自动设置为control中的前一个subForm1,并且不会移动到subForm2。有人可以帮助我如何在上面的代码中使用Shift + Tab的组合,以便它不会将焦点移动到subForm2而是保持默认行为?

vba access-vba
1个回答
0
投票

最后,我解决了逻辑。我必须首先检查Shift是否被按下,所以我在代码之前包含了NOT条件。现在,我的代码仅在未按下Shift时起作用,否则保留默认的Access行为。

Private Sub ComboBox1_KeyDown(KeyCode as Integer, Shift as Integer)
     If NOT (Shift AND acShiftMask)>0 then

        Select Case KeyCode
             Case  = vbKeyTab
              KeyCode = 0
              Me.parent.subForm2.SetFocus
        End Select

      End if
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.