vb.net文本框没有特殊字符

时间:2016-10-10 19:07:34

标签: vb.net validation textbox

我想跳过验证的一部分,只是让它成为文本框中没有我不想要的东西。

目的是允许退格,空格和字母:输入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

1 个答案:

答案 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中。