Texteingabe einschränken

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Gutelaunetyp.

    Benutze das OnKeyPress-Event deiner TextBox. Dort prüfst du ab (mit ASCII-Werten), ob die eingegebene Taste einen den ASCII-Wert von (0-9), (A-F) oder (a-f) hat. Dann e.Handled= true. Sonst mache nichts.

    Geht glaub ich auch mit Regex.
    der code müsste gehn:

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As Object, _
    2. ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    3. Handles TextBox1.KeyPress
    4. If Not "1234567890ABCDEFabcdef".Contains(e.KeyChar) And Not (e.KeyChar = Chr(8)) Then
    5. e.Handled = True
    6. End If
    7. End Sub

    mfg Gugi
    Funktioniert gut
    Danke

    Um die Klein- in GrossBuchstaben zu wandeln, habe ich noch eine Zeile eingefügt.

    VB.NET-Quellcode

    1. Private Sub tbxHex_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tbxHex.KeyPress
    2. If Not "1234567890ABCDEFabcdef".Contains(e.KeyChar) And Not (e.KeyChar = Chr(8)) Then
    3. e.Handled = True
    4. Else
    5. e.KeyChar = UCase(e.KeyChar)
    6. End If
    7. End Sub

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

    Hay,
    alternativ geht es auch mit Regex.replace

    Imports System.Text.RegularExpressions

    VB.NET-Quellcode

    1. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    2. TextBox1.Text = Regex.Replace(TextBox1.Text, "[^a-fA-F\d]", "")
    3. End Sub



    Mfg Kevin.