Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА:

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

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
Иногда встает задача ограничивать возможность ввода в поле элемента 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;  
}
Вложения:

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

Последнее редактирование: от Олег Коровяков.
  • Страница:
  • 1

О сайте

Строительство индивидуальных домов из лёгкого самана - опыт, советы, методика строительства и подробные инструкции. А также возможность применения альтернативных источников энергии.


Контакты

08340. ул.Салютная 17. с.Гнедын.
Киевская обл. Украина.

+38 067 492 4124.
+38 095 065 8860.

info@okwood.com.ua
www.okwood.com.ua

Местоположения


8PM2+7R Гнедин, Kyiv Oblast