Как запретить ввод цифр в textbox c
Перейти к содержимому

Как запретить ввод цифр в textbox c

  • автор:

Как запретить ввод цифр или букв в textBox C#

Всем привет! Сегодня я покажу один из вариантов того, как можно реализовать запрет на ввод информации.

Думаю многие из вас сталкивались с тем что в программах невозможен ввод в поле имени, часть символов состоящих из цифры, Такое встречается только в играх, но в реальности то мы знаем, что такого быть не должно. А само имя или фамилия должно исключительно состоять только из букв.

В примере ниже рассмотрим запрет ввода цифр в текстбокс и запретим пользователю ввод прописных букв. Пример очень простой и занимает всего пару строк кода.

private void txt_PreviewTextInput ( object sender , TextCompositionEventArgs e )
if ( int . TryParse ( e . Text , out int i ) )
e . Handled = true ;
if ( e . Text == e . Text . ToLower ( ) )
e . Handled = true ;

Как видим из кода у нас имеется TextBox с именем txt, у которого имеется событие PreviewTextInput. Внутри этого события, используем условии на проверку, введенный пользователем символ приводим к целочисленному типу, если это число то событие завершается, а символ не печатается в TextBox. Во втором условии, происходит проверка символа, в сравнении с нижним регистром этого же символа, если они равны, это будет означать, что пользователь ввел символ в нижнем регистре.

Следующий пример более сложный но более верный, так как он пропускает ввод запятой при чем одной и она не должна быть первой, и не встречаться в середине числа не сколько раз, да бы мы могли полученное число привести к вещественному типу. Для этого нам необходимо подписаться на события TextBox KeyPress и TextChanged

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Ввод в TextBox только цифр и необходимых символов C#

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

Для этого мы создадим тестовый проект для наглядного примера с одним лишь текстбоксом, у нас он вот такой:

Ввод в TextBox только цифр и необходимых символов C#

Перво-наперво нам необходимо найти событие, благодаря которому сможем отследить нажатие определенных клавиш. Таким событием является KeyPress. Оно будет происходить всегда, когда пользователь нажимает на любую кнопку на клавиатуре. Чтобы перейти к нему, надо для начала выделить TextBox, один раз щёлкнув на него левой кнопкой мыши.

Ввод в TextBox только цифр и необходимых символов C#

Затем следует найти в правой стороне рабочей области Visual Studio окно «Свойства» и перейти в нём на вкладку событий (значок в виде молнии):

Ввод в TextBox только цифр и необходимых символов C#

Примечание: если вы не нашли «Свойства», то просто кликните правой кнопкой мыши по текстбоксу и выберете в появившемся меню соответствующую вкладку.

Далее мы ищем событие KeyPress и дважды нажимаем на него левой кнопкой мыши. Нас перенесет к коду этого события. Далее мы рассмотрим несколько вариантов решения проблемы с вводом определенных символов в TextBox. Сначала будут идти варианты только с выводом цифр, а затем и другие (с Backspace, пробелом, запятой и проч.)

Использование в TextBox только цифр.

Способ первый — самый быстрый.

Внутри этой области кода мы запишем всего несколько строк:

Как запретить ввод символов символов с клавиатуры в textBox?

НО, хоть сколько я буду рассматривать я не знаю как реализовать ни то, ни это. Прошу помочь.

Отслеживать

задан 17 ноя 2017 в 21:22

557 2 2 золотых знака 4 4 серебряных знака 27 27 бронзовых знаков

Вы вопрос уже закрыли. Но я вам малось намекну. У текстбокса есть события, разные, но вам нужно событие клавиатурное. На это событие нужно подписаться и, в методе обрабатывающем это событие, проверять символы; если цифра пропускать, а если буква, то блокировать. Попробуйте реализовать это самостоятельно.

Запрет ввода данных

Можно использовать контрол MaskedTextBox.
если в нем настроить маску, то вводить можно будет только разрешенные маской символы. Вся логика уже там.

Если же этого не достаточно — то RegEx, класс для работы с regular extension.

Но все равно нужно проверять всю строку после ввода, а не во время (у каждого контрола есть эвент — к нему и можно проивязаться)

Если вам надо именно на вводе, и не MaskedTextBox, то во первых, не советую 🙂 (это же нестандартное поведение, пользователи будут зависать 🙂 ), во вторых — придется переменными уровня класса («глобальными») пользоваться, чтобы количество уже введенных точек считать. Кривой код будет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *