Autotab bei der Eingabe

Sie kennen das von den Dialogen zur Eingabe von Registrierungsschlüsseln: Sie geben den ersten Fünferpack des Schlüssels ein und der Fokus springt dann automatisch zum folgenden Feld, wo Sie den nächsten Fünferpack eingeben können. Dieses Verhalten wollen wir einmal nachbilden. Dieser Beitrag zeigt, wie das durch den geschickten Einsatz von Ereignisprozeduren leicht gelingt.

Formular erstellen

Als Erstes erstellen wir ein Formular namens frmKeys, dem wir die fünf Textfelder txtKey1, txtKey2, txtKey3, txtKey4 und txtKey5 hinzufügen. Dazwischen platzieren wir jeweils ein Minuszeichen (s. Bild 1).

Das Formular frmKeys in der Entwurfsansicht

Bild 1: Das Formular frmKeys in der Entwurfsansicht

Vorgaben

Was geschieht nun Optimalerweise gibt der Benutzer nacheinander die 25 Zeichen des Keys ein. Dabei wollen wir dafür sorgen, dass immer nach Eingabe von fünf Zeichen ein automatischer Sprung zum nächsten Textfeld erfolgt. Das erledigen wir etwa für das erste Textfeld mit der Prozedur, die durch das Ereignis Bei Taste auf ausgelöst wird und die wir wie folgt füllen:

Private Sub txtKey1_KeyUp(KeyCode As Integer, _
         Shift As Integer)
     If Len(Me!txtKey1.Text) = 5 And _
             Me!txtKey1.SelStart = 5 Then
         Me!txtKey2.SetFocus
     End If
End Sub

Wenn Sie nun fünf Zeichen in das erste Textfeld eingeben, landet die Einfügemarke wie in Bild 2 im zweiten Textfeld. Die If…Then-Bedingung in der Prozedur prüft, ob die Anzahl der Zeichen im Textfeld txtKey1 dem Wert 5 entspricht und ob sich die Einfügemarke an der letzten Position befindet. In diesem Fall wird der Fokus auf das zweite Textfeld txtKey2 verschoben.

Verschieben des Fokus in Aktion

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar