Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Событие KeyPress




События KeyDown и KeyUp

Нажатие и освобождение любой клавиши сопровождается генерацией события KeyDown и KeyUp соответственно. Источником событий является элемент управления, обладающий фокусом ввода. Элемент управления, генерировавший событие, передает сведения о нажатой (или отпущенной) клавише (или сочетании клавиш) через экземпляр класса KeyEventArgs класса, описывающего сочетание клавиш. В сигнатуре метода, обрабатывающего событие KeyDown или KeyUp, должен быть параметр типа KeyEventArgs.

Чаще всего события KeyDown и KeyUp используют, чтобы определить, нажаты ли клавиши Alt, Ctrl или Shift. Результат передается обработчику соответствующего события через ссылку на экземпляр класса KeyEventArgs. Его свойства Alt, Ctrl и Shift возвращают значения типа Boolean, указывающие, были ли нажаты соответствующие клавиши. Значение True свидетельствует о том, что клавиша была нажата, а false о том, что нет. Ниже показан пример обработчика события KeyDown, проверяющего нажатие клавиши Alt:

 

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

if (e.Alt == true)

MessageBox.Show("Нажата кнопка ALT!!!");

}

Свойство KeyEventArgs.KeyCode позволяет определить, какая именно клавиша спровоцировала событие. Это свойство возвращает код нажатой или отпущенной клавиши (соответственно при событиях KeyDown или KeyUp). Ниже показан пример простого обработчика события, отображающего сообщение с кодом нажатой клавиши:

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

 

MessageBox.Show("Нажата кнопка: " + e.KeyCode.ToString());

}

Когда пользователь нажимает клавишу, которой соответствует значение ASCII, генерируется событие KeyPress. К этим клавишам относятся все алфавитно-цифровые клавиши (a— z, A— Z, 0—9), а также ряд специальных клавиш, таких, как Enter и Backspace. Если при нажатии клавиши или их комбинации не генерируется ASCII-символ, событие KeyPress также не генерируется. К таким клавишам относятся клавиши-модификаторы Ctrl и Alt, а также все функциональные клавиши.

Это событие очень удобно для перехвата нажатия клавиш и проверки соответствующих символов. При генерации события KeyPress обработчик получает экземпляр класса KeyEventArgs, свойство Key EventArgs. Key Code которого содержит ASCII-символ клавиши, нажатие которой спровоцировало это событие. Чтобы проверить, например, была ли нажата буква, достаточно проверить свойство KeyChar в обработчике события KeyPress.

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

if (Char.IsLetter(e.KeyChar))

 

MessageBox.Show("Буква!!!");

}

 

Тип данных Char поддерживает несколько статических [Shared (static)] методов, удобных для проверки символов, переданных событием KeyPress:

• Char.IsDigit();

• Char.IsLetter();

• Char.IsLetterOrDigit();

• Char.IsPunctuation();

• Char.IsLower();

• Char.IsUpper().

Все они проверяют символы и возвращают булевы значения. Что проверяет каждый метод — легко догадаться по его имени.

Char.IsDigit возвращает true, если переданный ей символ является цифрой, и false в любом другом случае;

Char.IsLower возвращает true, если ее аргументом является буква в нижнем регистре, и false в противном случае; сходным образом работают остальные методы.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 538; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.