Я буду пользоваться 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)
С удовольствие отвечу на вопросы =)
А не проще ли использовать регулярные выражения?
как вариант. Но как вы собираетесь учесть язык?
Можно таким образом запретить ввод цифр