1

我是 VB 新手,但现在正在做一个 VB 项目。我遇到了一个关于 Shift-Tab 的奇怪问题。

跳格顺序是正确的,它将通过所有文本框、复选框等到表单末尾的“接受”和“取消”按钮,然后循环回到表单的开头。

但是,如果您使用 Shift-Tab,它将跳过“接受”和“取消”按钮。不过,它适用于所有其他控件。

标签索引对我来说似乎是正确的。

有谁知道可能是什么原因?我无能为力,所以任何帮助将不胜感激。

4

1 回答 1

1

检查Shift+ Tabon类似这样EnterFocus的事件UserControl

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal VKey As Long) As Integer

Public Function IsKeyPressed(ByVal lVirtKey As KeyCodeConstants) As Boolean
    IsKeyPressed = ((GetAsyncKeyState(lVirtKey) And &H8000) = &H8000)
End Function

Private Sub UserControl_EnterFocus()
    If IsKeyPressed(vbKeyTab) And IsKeyPressed(vbKeyShift) Then
        cmdCancel.SetFocus
    End If
End Sub
于 2012-12-25T16:15:00.330 回答