Проверка ввода для Textbox на C # Winforms - PullRequest
3 голосов
/ 07 августа 2010

Я пытаюсь проверить, что ввод в текстовое поле на C # winforms соответствует допустимому шаблону.

Шаблон должен быть строкой, состоящей только из следующих символов

  • 0 до 9
  • от А до Я
  • "-"
  • "/"

Я смотрю на использование события «Проверка» в текстовом поле для выполнения проверки, но я борюсь с правильным использованием Регулярного выражения - или, может быть, есть лучший способ, чем использование Регулярного выражения.

Ответы [ 2 ]

3 голосов
/ 07 августа 2010

Регулярное выражение "[A-Z0-9_ /]" должно это сделать. Регулярные выражения кажутся наиболее очевидным выбором (это очень простая проверка), если вы счастливы их использовать.

Вам может потребоваться заключить в кавычки некоторые специальные символы с символом '\' в зависимости от выбранного языка. Если вы также хотите, чтобы строчные буквы были разрешены, то это будет "[a-zA-Z0-9 _ /]".

В качестве альтернативы может сработать что-то вроде "(\ w? \ D? _? /?) +" - \ w соответствует любому символу, \ d любой цифре. '?' соответствует предыдущему символу 0 или 1 раз, в то время как + в конце допускает множественное из этих совпадений.

1 голос
/ 07 августа 2010

Вы можете использовать событие KeyDown в TextBox и установить для поля SuppressKeyPress KeyEventArgs значение true, если это не один из символов, которые вы хотите принять. Вы можете проверить, какой символ был введен, проверив поле KeyCode KeyEventArgs. Это сделает так, что если пользователь попытается ввести символ, который не является тем, который вам нужен, ничего не произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...