Простенькое приложение и контроль ввода символов в Text Box C# .NET

Я буду пользоваться Visual Studio 2008, но в более новых версия процесс не сильно отличается если и отличается вообще.
Создайте новый проект Forms:

После чего перед вами появится пустое окно Windows.
Перетащите с панели элементов элмент Text Box:

Разместите его как нибудь…

Теперь приступим к контролю ввода. На панели «Свойства» переключитесь на «События» (значок жёлтой молнии):

Найдите событие KeyPress (возникает при нажатии клавиши в фокусе поля) и кликните дважды в поле справа. Вы попадёте в редактор кода программы в сгенерированный метод.
У меня вот так:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
}

Для контроля ввода будем пользоваться параметром KeyPressEventArgs e.
Создадим блок if:

if ((e.KeyChar >= 'A') && (e.KeyChar <= 'z'))
{
          e.Handled = true;  // не вводим нажатый символ в поле
          MessageBox.Show("Введён латинский символ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);   //выводим сообщение об ошибке
}

Обратите внимание на то, что мы сравниваем диапазон букв. Это возможно из-за того, что символы расположены в таблице кодировки друг за другом от заглавных к строчным.
При попытке ввода латинского символа в поле будет выведено сообщение об ошибке:

Отследить клавиши Backspace, Shift помогает такая конструкция

Char.IsControl(e.KeyChar)

С удовольствие отвечу на вопросы =)

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий

  1. lamazavr

    А не проще ли использовать регулярные выражения?

    Ответить
  2. lamazavr

    как вариант. Но как вы собираетесь учесть язык?

    Ответить
  3. lamazavr

    Можно таким образом запретить ввод цифр

    Ответить