2016-10-10 5 views
0

Ich möchte einen Teil der Validierung überspringen und es einfach so machen, dass die Textbox nichts haben kann, was ich nicht will.vb.net Textbox keine Sonderzeichen

Es sollen Rücksprünge, Leerzeichen und Buchstaben möglich sein: d, r, i (oben und unten).

Wie kann ich es machen, so dass keine Sonderzeichen eingegeben bekommen {},:;!?“Usw.

Private Sub txtParty_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtParty.KeyPress 
    'allows only numbers, letter, space, and backspace 
    If Char.IsControl(e.KeyChar) = False And Char.IsSeparator(e.KeyChar) = False And Char.IsLetterOrDigit(e.KeyChar) = True And e.KeyChar <> "d" And e.KeyChar <> "D" And e.KeyChar <> "r" And e.KeyChar <> "R" And e.KeyChar <> "i" And e.KeyChar <> "I" Then 
     e.Handled = True 
    End If 
End Sub 
+0

Sie reguläre Ausdrücke mit clientseitige Validierung verwenden könnte. Ist das ASP. Netz W. eb Formular? – Win

+0

Hinzufügen einer regulären Ausdrucksüberprüfung zu einem Textfeld von MSDN https://msdn.microsoft.com/en-us/library/ms996428.aspx –

Antwort

2

Wahrscheinlich einfacher, mit ein paar If-Blöcke, die Daten zu filtern.

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) 
           Handles TextBox1.KeyPress 
    If e.KeyChar <> ControlChars.Back AndAlso e.KeyChar <> " " Then 
    If Not Char.IsLetter(e.KeyChar) OrElse 
     Not "DRI".Contains(e.KeyChar.ToString.ToUpper) Then 
     e.Handled = True 
    End If 
    End If 
End Sub 

natürlich würden Sie noch die Strg-V abfangen müssen und die Context entfernen Einfügen von Text in das Textfeld zu verhindern.

Verwandte Themen