Zeichen aus TextBox filtern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Zeichen aus TextBox filtern

    Ich wollte in einer TextBox nur die Zeichen von A-Z, von 1-9 und Unterstriche zulassen. Bekomme das aber noch nicht so richtig hin. Vielleicht kann mir jemand behilflich sein.

    Soweit funktioniert es auch. Aber es werden nur die Zahlen von 1-9 "erlaubt". Das auf andere Zeichen auszuweiten, ist mir nicht gelungen.

    VB.NET-Quellcode

    1. Private Sub TextBox2_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
    2. Select e.KeyCode
    3. Case Keys.D0 To Keys.D9 ' Wenn ich hier mit "And Keys.A To Keys.Z" erweitere geht das nicht. Ein eigenes Case will irgendwie auch nicht.
    4. Case Else
    5. e.SuppressKeyPress = True ' Andere Tasten nimmt die TextBox nicht
    6. End Select
    7. End Sub
    Hi
    vorsicht: Auch nicht-dezimale Zahlen werden als IsNumber angesehen. Stattdessen einfach Char.IsDigit verwenden. Allerdings kann man dies sogar kombinieren zu Char.IsLetterOrDigit.
    Durch das Einfügen von Texten (Strg+V) wird dieser Schutzmechanismus übrigens ausgehebelt. D.h. du solltest ggf. bei TextChanged ebenfalls reagieren (vergiss nicht, den SelectionIndex entsprechend anzupassen ;) ). Außerdem könntest du überlegen, ob es sich nicht auch durch eine MaskedTextBox erledigen lässt.

    Gruß
    ~blaze~