我是VB新手,但現在正在開發VB項目。 我遇到了一個關於Shift-Tab的奇怪問題。Shift-tab問題
標籤順序是正確的,它將遍歷所有文本框,複選框等到窗體末尾的接受和取消按鈕,然後循環回到窗體的開頭。
但是,如果您使用Shift-Tab,它將跳過接受和取消按鈕。它適用於所有其他控件。
標籤索引對我來說似乎是正確的。
有沒有人有任何想法可能是什麼原因?我在我的智慧結束,所以任何幫助將不勝感激。
我是VB新手,但現在正在開發VB項目。 我遇到了一個關於Shift-Tab的奇怪問題。Shift-tab問題
標籤順序是正確的,它將遍歷所有文本框,複選框等到窗體末尾的接受和取消按鈕,然後循環回到窗體的開頭。
但是,如果您使用Shift-Tab,它將跳過接受和取消按鈕。它適用於所有其他控件。
標籤索引對我來說似乎是正確的。
有沒有人有任何想法可能是什麼原因?我在我的智慧結束,所以任何幫助將不勝感激。
上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
感謝您的幫助。這是非常豐富的信息,對我來說很有意義,但是,代碼仍然拒絕工作。 EnterFocus()僅在我通過控件Tab時觸發,但在Shift + Tab時從未觸發。 – user1927182
您的「頁腳」UserControl嵌套在窗體上的另一個「UserControl」中嗎?也實施它的'EnterFocus'事件。 – wqw
是頁腳按鍵的自定義'UserControl'的一部分的檢查移 + 標籤? – wqw
是的,接受和取消按鈕是一個自定義UserControl。基本上,該控件是一個由Accept和Cancel按鈕組成的頁腳。 – user1927182
這是一個設計行爲。在Tab或Shift-Tab上,「UserControl」的第一個組成控件得到了重點關注。您可以檢查正在按下的「Shift」並手動對焦最後一個。 – wqw