Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 152

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 146 147 148 149 150 151 < 152 > 153 154 155 156 157 158 .. 320 >> Следующая

Реагируем на события клавиатуры
Обработка событий клавиатуры по своим принципам практически идентична работке событий мыши. Приведенный ниже код позволяет перехватить событие KeyUp и отобразить текстовое имя клавиши, которую мы нажали. Захват события мы будем производить при помощи делегата (если нам захочется, можно сделать то же самое, заместив метод OnKeyUpO):
public class MainForm : form
public {
Top - 100: Left - 75: Height - 100; Width = 500:
MessageBox.Show(Bounds.ToStringO, "Current reef ):
//' Перехватываем событие Keyup
this.KeyUp +- new KeyEventHandler(OnKeyllp):
}
public void OnKeyUpiObject •.•.".: •v KeyEventArgs e) {
Mess ageBox.Sh ow(e.KeyCode.ToSt rі ng O, "KeyP res sed!"):
}
j"
368 Глава 8 * Окна становятся лучше: введение в Windows.Forms
Key Pressed JKjI
Enter
Г <ж
Рис. 8.18. Какая клавиша была нажата?
Код приложения Control Behaviors можно найти в подкаталоге Chapter 8.
Еще немного о классе Control
Класс Control определяет множество членов, при помощи которых мы можем настроить цвет фона и фоновые изображения, гараметры шрифта, возможности перетаскивания (drag-and-drop), контекстные меню и многое другое. Кроме того, этот класс позволяет управлять местонахождением объектов классов, производных от Control (например, элементов управления). Кроме того, в этом классе предусмотрен очень важный метод OnPfJir<t(), который позволяет управлять отображениемтекста, изображений, различныхгесметрическихэлементов в клиентской области формы. Наиболее важные свойства метода Control представлены в табл. 8.10.
Класс Control также определяет множество зесьма полезных методов и событий (табл. 8.11).
Как видно из этого кода, в классе KeycverXAru/; предусмотрено свойство KeyCode. при помощи которого можно получить значение из одноименного перечисления KeyCode. Как несложно догадаться, в этом перечислении хранятся названия всех клавиш на клавиатуре. Помимо свойства KeyCoJe, класс KeyEventArgs содержит и другие полезные свойства. Они представлены в табл, 8.9.
Таблица 8.9. Свойства класса KeyEventArgs
Свойство "~" ~~ _~
Alt Можно получить информацию о том ,нажата или нет клавиша Alt
Control To самое для Control
Handled Позволяет получить или установить значение, которое говорит о том,
обрабатывается ли данное событие
KeyCode Позволяет получить код клавиши при событиях KeyDown и KeyUp
KeyData Позволяет получить данные о нажатых клавишах при тех же событиях (отличается
от KeyCode тем, что Ctrl, Alt и Shift считаются служебными, а не обычными, можно получать значения клавиатурных комбинадий с этими клавишами)
Modifiers Позволяет получить информацию о том, какие управляющие клавиши (Ctrl, Shift и Alt) нажаты в данный момент
Shift_Можно получить информацию о том, нажата или нет клавиша Shift
Возможный результат при нажатии на одну v з клавиш на клавиатуре пред ставлен на рис. 8.18.
Еще немного о классе Control 369
Таблица 8.10, Дополнительные свойства класса Control
Свойство,
AHowDrop
Anchor
Ba ck Color, Backgroundlmage, Font, ForeColor,
Cursor
ContextMenu
Dock
Opacity
Region RightToLeft
Назначение
При установленном значении true для этого свойства разрешены операции перетаскивания (drag-and-drop) и работа с соответствующими событиями
Определяет, какие края элемента управления будут привязаны к краям родительского контейнера
Эти свойства определяют отображение клиентской области формы
Определяет, какое контекстное меню будет выводиться при щелчке на форме правой кнопкой мыши
Это свойство определяет, к какому фаю родительского контейнера будет «пристыкован» данный элемент управления. Например, при «стыковке» с верхним краем элемент управления будет постоянно находиться наверху
контейнера
Определяет степень прозрачности элемента управления. Допустимое значение варьируется от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный)
Это свойство определяет объект Region, при помощи которого можно управлять очертаниями и границами элемента управления
Это свойство предназначено для локализованных версий приложений, предназначенных для стран, где пишут справа налево
Таблица 8.11. Дополнительные методы и события класса Control Метод или событие """" ——
DoDragDropO OnDragDropO OnDragEntenj OnDragLeave() OnDragOverO
ResetFontQ ResetCursor() ResetForeColor() ResetBackColorO
OnPaintO
DragEnter DragLeave DragDrop DragOver
Paint
Эти методы используются в целях мониторинга операций перетаскивания для объектов классов, производных от Control
Эти методы используются для того, чтобы сделать значения соответствующих атрибутов пользовательского интерфейса у подчиненных элементов управления такими же, как и у соответствующего родительского контейнерного элемента управления
В производных классах для организации реакции на событие Paint этот метод должен быть замещен
Эти события при операциях
Это событие возникает в тех ситуациях, когда изображение элемента _управления должно быть обновлено_
Проиллюстрируем возможности этих членов. Мы изменим цвет фона для объекта Form на "Tomato" (надеюсь, вам понравится), установим прозрачность в 50 %, а курсор мыши будет изображать песочные часы. Кроме .. мы используем со-
Предыдущая << 1 .. 146 147 148 149 150 151 < 152 > 153 154 155 156 157 158 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100