VB 2010: Textbox focus

10/30/2013 14:47 Dingtax#1
Hallo,

ich habe in meinem Tool mehrere Textboxen, nach dem die maximale Anzahl an Zahlen eingegeben wurde soll zur nächsten gesprungen werden. Das klappt auch, nur springt das Programm erst beim 5. Anschlag weiter, sodass wenn man einfach den Code eingibt, immer die 5. Zahlt 'verschluckt' wird. Wie kann ich das ändern?

Code:
    Private Sub PSCBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles PSCBox1.KeyPress
        Select Case Asc(e.KeyChar)
            Case 48 To 57, 8

            Case Else
                e.Handled = True
        End Select

        If PSCBox1.TextLength = 4 Then PSCBox2.Focus()
        PSCBox1.MaxLength = 4
    End Sub
10/30/2013 15:56 qkuh#2
Verwende das TextChanged-Event.
10/31/2013 08:39 Aeh'#3
Quote:
If PSCBox1.TextLength = 5 Then PSCBox2.Focus()
PSCBox1.MaxLength = 5
Mach das mal so, würde mich interessieren ob es dann geht.
10/31/2013 10:59 DeinMud#4
If TextBox1.Text.Length = 3 Then
TextBox2.Focus()
End If
e.Handled = Not ("1234567890" & Convert.ToChar(8)).Contains(e.KeyChar)

Noch einige Sachen;
-Asc() ist veraltet - Benutze Convert.ToInt16()
-Wenn man etwas auf einen booleschen wert überprüft & dabei etwas anderes auf einen setzt, braucht man keine If / Select Case Abfrage
Hier noch etwas über Böse Funktionen aus VB 6:
[Only registered and activated users can see links. Click Here To Register...]
Textbox1.MaxLength bitte im designer setzen.