1

私はVBを初めて使用しますが、現在VBプロジェクトに取り組んでいます。Shift-Tab に関する奇妙な問題に遭遇しました。

すべてのテキストボックス、チェックボックスなどを通過してフォームの最後にある [同意する] および [キャンセル] ボタンに移動し、フォームの最初に戻るタブ順序は正しいです。

ただし、Shift-Tab を押すと、Accept and Cancel ボタンがスキップされます。ただし、他のすべてのコントロールでは正しく機能します。

タブインデックスは私には正しいようです。

何が原因なのか誰にもわかりませんか?私は機知に富んでいるので、どんな助けでも大歓迎です。

4

1 に答える 1

1

このようなイベントでShift+TabをチェックEnterFocusUserControl

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 に答える