rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

C# - Проверка ввода в TextBox (ввод только определенных символов)

Больше
7 мес. 4 дн. назад #149 от О.Коровяков
Иногда встает задача ограничивать возможность ввода в поле элемента Windows Forms - TextBox.

К примеру, мы хотим, что б данный контрол принимал от пользователя только числа. Скажу сразу, что для таких ситуаций предусмотрен контрол MaskedTextBox с его настраиваемой маской ввода. Но будем считать, что сегодня нас интересует только TextBox.

Итак, для осуществления данной затеи, нам потребуется ровно 1 минута времени, засекайте.

1. Кладем на форму элемент TextBox;
2. Переходим в раздел событий вкладки Properties и подписываемся на событие KeyPress данного TextBox-а;
3. В сгенерированном обработчике события вставляем код:
private void myTextBox_KeyPress(  
    object sender, KeyPressEventArgs e)  
{  
    if (e.KeyChar != 8 && (e.KeyChar < 48 || e.KeyChar > 57))  
       e.Handled = true;  
}

Обратите внимание на присутствие в условии сравнения кода вводимого символа с числом 8. Это дает возможность обрабатывать клавишу BackSpase. В итоге, не будут игнорироваться лишь нажатия клавиш цифр, BackSpase, ну и прочих вспомогательных (курсор, Delete ...).

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

И все таки, если вам требуется вводить лишь цифры (целочисленные числа), то как вариант возможно воспользоваться методом Char.IsDigit:
private void myTextBox_KeyPress(  
    object sender, KeyPressEventArgs e)  
{  
    if (!Char.IsDigit(e.KeyChar))  
       e.Handled = true;  
}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

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