Shift-tab问题

时间:2012-12-24 18:56:22

标签: vb6 tab-ordering

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

Tab键顺序是正确的,它将通过表格末尾的Accept and Cancel按钮的所有文本框,复选框等,然后循环回到表单的开头。

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

Tab指数对我来说似乎是正确的。

有没有人知道可能是什么原因?我在我的智慧结束,所以任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

检查EnterFocus此事件的UserControl事件中的 Shift + 标签

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