Как проверить символы, которые пользователь вводит в текстовое поле WinForms? - PullRequest
0 голосов
/ 28 апреля 2011

Какой код следует написать, чтобы при вводе имени в текстовом поле не вводились специальные символы, кроме '_' (подчеркивание)?

Если такой символ существует, то должно появиться всплывающее сообщение.

Ответы [ 2 ]

17 голосов
/ 28 апреля 2011

Вместо того, чтобы писать код для вас, вот основные шаги, необходимые для выполнения такого умения:

  1. Обработка события KeyDown для элемента управления TextBox.

  2. Используйте что-то вроде Char.IsSymbol метод , чтобы проверить, разрешен ли введенный ими символ.Обязательно проверьте явно подчеркивание, так как вы хотите разрешить его как особый случай других символов.

  3. Если введен действительный символ, ничего не делать.WinForms позаботится о том, чтобы вставить его в текстовое поле.

    Однако, если введен недопустимый символ, вам необходимо показать пользователю сообщение, информирующее его о том, что этот символ не принят текстовым полем.Здесь можно сделать пару вещей:

    1. Установите для свойства e.SuppressKeyPress значение True.Это предотвратит появление символа в текстовом поле.

    2. Отображение окна всплывающей подсказки в текстовом поле, указывающее, что введенный пользователем символ не принимается текстовым полем, и информирование его о том, какие символы считаются допустимым вводом.
      Самый простой способ сделать это - использовать ToolTip класс .Добавьте этот элемент управления в форму во время разработки и при необходимости отобразите его, используя одну из перегрузок метода Show .
      В частности, вы захотите использовать одну из перегрузок, которыепозволяет указать IWin32Window для привязки всплывающей подсказки (это ваш текстовый элемент управления).

      An example of a balloon-style tooltip, displaying an error message.

      В качестве альтернативы вместо всплывающей подсказки вы можете отобразить небольшой значок ошибкирядом с элементом управления textbox, информируя пользователя о том, что его последний ввод был неверным.Это легко реализовать, используя ErrorProvider control .Добавьте его в форму во время разработки, как элемент управления всплывающей подсказки, и вызовите метод SetError во время выполнения, чтобы отобразить сообщение об ошибке.

      An example of an ErrorProvider control, set on a text box.

      Что бы вы ни делали, не отображает окно сообщения!Это нарушает попытки пользователя набрать текст, и вполне вероятно, что он по неосторожности отклонит его, введя следующую букву, которую хотел набрать.

0 голосов
/ 28 апреля 2011

Добавить обработчик к событию TextBox KeyDown.Вы можете проверить, какая клавиша там была нажата, и делать с ней все, что захотите, включая вывод окна сообщения.

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