#vb.net #validation #textbox
#vb.net #проверка #текстовое поле
Вопрос:
Я хотел бы пропустить часть проверки и просто сделать так, чтобы в текстовом поле не было ничего, что мне не нужно.
Цель состоит в том, чтобы разрешить вводить пробелы, пробелы и буквы: 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. Вы можете использовать регулярное выражение с проверкой на стороне клиента. Это ASP.Net Веб-форма?
2. Добавление проверки регулярного выражения в текстовое поле из MSDN msdn.microsoft.com/en-us/library/ms996428.aspx
Ответ №1:
Вероятно, проще с помощью пары If-блоков для фильтрации данных.
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, чтобы предотвратить вставку текста в текстовое поле.