Wäre das nicht toll, wenn beim Drücken der TAB-Taste im letzten Eingabecontrol einer Registerkarte autom. die nächste Registerkarte im SSTab-Control geöffnet werden würde? Ok... kurze Überlegung... alles klar Fügen Sie hierzu nachfolgenden Code in den Codeteil der Form ein: Option Explicit ' API - Funktionen Private Declare Function GetKeyboardState Lib "user32" ( _ pbKeyState As Byte) As Long ' benötigte Konstanten Private Const VK_TAB = &H9 Private Const VK_SHIFT = &H10 ' Prüft, ob Tab-Taste gedrückt wurde. ' Optional in Verbindung mit der Shift-Taste Public Function CheckIfTabPressed( _ Optional ByVal bWithShift As Boolean = False) As Boolean Dim bKeyArray(255) As Byte ' Status ermitteln Call GetKeyboardState(bKeyArray(0)) ' 1. Prüfung: wurde TAB gedrückt ? If ((bKeyArray(VK_TAB) And &H80) = &H80) Then ' 2. Prüfung: SHIFT od. NICHT SHIFT If bWithShift Then ' Ist Shift gedrückt ? CheckIfTabPressed = ((bKeyArray(VK_SHIFT) And &H80) = &H80) Else ' Ist Shift nicht gedrückt ? CheckIfTabPressed = ((bKeyArray(VK_SHIFT) And &H80) <> &H80) End If Else ' Tab wurde nicht gedrückt CheckIfTabPressed = False End If End Function Wie wendet man die Funktion nun an? Private Sub Form_Load() ' 1. Registerkarte aktivieren SSTab1.Tab = 0 ' 1. Control aktivieren SendKeys "{TAB}" End Sub Private Sub Text1_LostFocus() If CheckIfTabPressed(True) Then ' Bei Shift+TAB letzte Registerkarte aktivieren SSTab1.Tab = SSTab1.Tabs - 1 SendKeys "{TAB}", True End If End Sub Private Sub Text2_LostFocus() If CheckIfTabPressed(False) Then ' Bei TAB nächste Registerkarte aktivieren SSTab1.Tab = SSTab1.Tab + 1 SendKeys "{TAB}", True End If End Sub Private Sub Text3_LostFocus() If CheckIfTabPressed(True) Then ' Bei Shift+TAB vorige Registerkarte aktivieren SSTab1.Tab = SSTab1.Tab - 1 SendKeys "{TAB}", True End If End Sub Private Sub Text5_LostFocus() If CheckIfTabPressed(False) Then ' Bei TAB nächste Registerkarte aktivieren SSTab1.Tab = SSTab1.Tab + 1 SendKeys "{TAB}", True End If End Sub Private Sub Text6_LostFocus() If CheckIfTabPressed(True) Then ' Bei Shift+TAB vorige Registerkarte aktivieren SSTab1.Tab = SSTab1.Tab - 1 SendKeys "{TAB}", True ElseIf CheckIfTabPressed(False) Then ' bei TAB 1. Registerkarte aktivieren SSTab1.Tab = 0 SendKeys "{TAB}", True End If End Sub Dieser Tipp wurde bereits 16.020 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... Tipp des Monats ![]() Dieter Otter PopUp-Menü wird nicht angezeigt :-( In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. Neu! sevCommand 4.0 ![]() Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |