tehadm
Администратор
- Сообщения
- 1 160
- Реакции
- 293
Как вводить в TextBox только цифры или другие необходимые им символы, игнорируя все остальные?
- Создаем TextBox
- Теперь нам нужно событие KeyPress, которое отслеживает нажатие определенных клавиш
- Выделяем TextBox
- В правой стороне рабочей области Visual Studio окно Свойства и переходим во вкладку событий (значок в виде молнии):
- Далее мы ищем событие KeyPress и дважды нажимаем на него левой кнопкой мыши. Нас перенесет к коду этого события. Куда мы добавляем:
C#:char number = e.KeyChar; if (!Char.IsDigit(number)) { e.Handled = true; }
Так что же мы тут сделали?
В самой первой строке мы объявили символьную переменную, назвав её number.Благодаря параметру e.KeyChar программа заносит в нашу переменную символ введенной клавиши. Нажали на клавишу “+”, в переменную запишется “+”, нажали на клавишу “в”, в переменную запишется “в” и т.д.
Далее идёт условие !Char.IsDigit(number), которое можно словесно интерпретировать как “если символ из переменной number не относится к категории десятичных цифр” (а нам как раз такие и нужны). А вывод из условия e.Handled = true интерпретируется как “тогда не обрабатывать введенный символ (и, следовательно, не выводить его в TextBox). Иными словами, мы проверяем, является ли любой символ, введенный пользователем десятичной цифрой. Если нет – отбрасываем его, если является – обрабатываем и выводим в TextBox.