Textbox zu Textbox und wieder zurück

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    Textbox zu Textbox und wieder zurück

    Hey ich möchte das man von Textbox zu Textbox springen kann aber das man auch wiederrum wieder zurück springen kann
    Mein Code ist bereits so aufgebaut:

    VB.NET-Quellcode

    1. If TextBox1.Text.Length = 1 Then TextBox2.Focus


    Sozusagen sind wir jetzt in der Textbox2 aber ich möchte das wenn man das Zeichen wieder entfernt, das es wieder zur Textbox1 springt.

    - FanTa
    Hi,

    also wenn Textbox1 leer ist, in TextBox2 springen, und wenn TextBox2 leer ist, in TextBox1 springen? Und wenn beide leer sind nimmt das nie ein Ende?
    Du musst auf jeden Fall bei einer TextBox abfragen, dass nicht beide leer sind, am besten in TextBox2.

    Und was ist eigentlich der Fehler? Wo springt er denn nicht hin?


    Link :thumbup:
    Hello World

    Link275 schrieb:

    Hi,

    also wenn Textbox1 leer ist, in TextBox2 springen, und wenn TextBox2 leer ist, in TextBox1 springen? Und wenn beide leer sind nimmt das nie ein Ende?
    Du musst auf jeden Fall bei einer TextBox abfragen, dass nicht beide leer sind, am besten in TextBox2.

    Und was ist eigentlich der Fehler? Wo springt er denn nicht hin?


    Link :thumbup:

    Nein natürlich nicht bei Textbox1 ist ende. Es ist ein kleines "Passwortfeld" mit 5 Textboxen also eine art PIN.
    Es soll einfach sein das man wenn man eine Ziffer eingegeben hat von der Textbox1 zur Textbox2 springt. Aber wenn man in der Textbox1 was falsches geschrieben hat, kann man die Backspace taste benutzen um das was in Textbox2 zu steht zu löschen und wieder zur Textbox1 zu springen.

    Ich hoffe ihr versteht was ich meine.

    - FanTa
    @FanTa

    Du brauchst dieses Event:

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyDown(sender As Object, e As EventArgs) Handles TextBox1.KeyDown
    2. End Sub


    In diesem Event sollst du überprüfen ob die Länge der Textbox 0 ist. Wenn "ja" und die Backspace-Taste gedrückt ist soll er den Focus einer anderen Textbox annehmen.

    Edit:

    Versuche es zu verstehen:

    VB.NET-Quellcode

    1. Private Sub tb_1_KeyDown(sender As Object, e As KeyEventArgs) Handles tb_1.KeyDown
    2. If tb_1.Text.Length = 4 Then
    3. tb_2.Focus()
    4. End If
    5. End Sub
    6. Private Sub tb_2_KeyDown(sender As Object, e As KeyEventArgs) Handles tb_2.KeyDown
    7. If tb_2.Text.Length = 0 AndAlso e.KeyCode = Keys.Back Then
    8. tb_1.Focus()
    9. End If
    10. If tb_2.Text.Length = 4 Then
    11. tb_3.Focus()
    12. End If
    13. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lingo“ ()

    Hi,

    Was is jetzt so schwierig?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    3. If TextBox1.TextLength = 1 Then
    4. TextBox2.Focus()
    5. TextBox2.SelectAll()
    6. End If
    7. End Sub
    8. Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
    9. If TextBox2.TextLength = 0 Then
    10. TextBox1.Focus()
    11. TextBox1.SelectAll()
    12. End If
    13. If TextBox2.TextLength = 1 Then
    14. TextBox3.Focus()
    15. TextBox3.SelectAll()
    16. End If
    17. End Sub
    18. Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
    19. If TextBox3.TextLength = 0 Then
    20. TextBox2.Focus()
    21. TextBox2.SelectAll()
    22. End If
    23. If TextBox3.TextLength = 1 Then
    24. TextBox4.Focus()
    25. TextBox4.SelectAll()
    26. End If
    27. End Sub
    28. Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
    29. If TextBox4.TextLength = 0 Then
    30. TextBox3.Focus()
    31. TextBox3.SelectAll()
    32. End If
    33. If TextBox4.TextLength = 1 Then
    34. TextBox5.Focus()
    35. TextBox5.SelectAll()
    36. End If
    37. End Sub
    38. Private Sub TextBox5_TextChanged(sender As Object, e As EventArgs) Handles TextBox5.TextChanged
    39. If TextBox5.TextLength = 0 Then
    40. TextBox4.Focus()
    41. TextBox4.SelectAll()
    42. End If
    43. End Sub
    44. End Class


    Quick&Dirty, und klappt. test.exe.rar



    Link :thumbup:
    Hello World
    Hi,

    vergiss den von @Link275

    :huh:

    @FanTa: Schau mal, wenn du das e.KeyDown nutzen willst, musst in das KeyDown-Event des Controls (also der TextBox). Das heißt du klickst im Eigenschafts-Fenster auf dieses Blitz-Icon und suchst das KeyDown-Event, dort klickst dann doppelt drauf und dann funktioniert's auch.

    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()