我想跳过验证的一部分,只是让它成为文本框中没有我不想要的东西。
目的是允许退格,空格和字母:输入d,r,i(上部和下部)。
我怎样才能做到不会输入特殊字符,如{},!,:;"等等?
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 :(得分:2)
使用几个If-Blocks过滤数据可能会更容易。
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
当然,您仍然需要拦截Ctrl-V并删除ContextMenuStrip以防止将文本粘贴到TextBox中。