Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР9.doc
Скачиваний:
24
Добавлен:
21.09.2019
Размер:
4.54 Mб
Скачать

Класс Control

Класс Control является базовым для всех отображаемых элементов, то есть элементов, которые составляют графический интерфейс пользователя, например, кнопок, списков, полей ввода и форм. Класс Control реализует базовую функциональность интерфейсных элементов. Он содержит методы обработки ввода пользователя с помощью мыши и клавиатуры, определяет размер, положение, цвет фона и другие характеристики элемента. Для каждого объекта можно определить родительский класс, задав свойство Parent, при этом объект будет иметь, например, такой же цвет фона, как и его родитель.

Наиболее важные свойства класса Control перечислены в таблице 9.2, методы — в таблице 9.3.

Таблица 9.2 - Основные свойства класса Control

Свойство

Описание

Anchor

Определяет, какие края элемента управления будут привязаны к краям родительского контейнера. Если задать привязку всех краев, элемент будет изменять размеры вместе с родительским

BackColor, BackgroundImage, Font, ForeColor, Cursor

Определяют параметры отображения рабочей области формы: цвет фона, фоновый рисунок, шрифт, цвет текста, вид указателя мыши

Bottom, Right

Координаты нижнего правого угла элемента. Могут устанавливаться также через свойство Size

Top, Left

Координаты верхнего левого угла элемента. Эквивалентны свойству Location

Bounds

Возвращает объект типа Rectangle (прямоугольник), который определяет размеры элемента управления

ClientRectangle

Возвращает объект Rectangle, определяющий размеры рабочей области элемента

ContextMenu

Определяет, какое контекстное меню будет выводиться при щелчке на элементе правой кнопкой мыши

Dock

Определяет, у какого края родительского контейнера будет отображаться элемент управления

Location

Координаты верхнего левого угла элемента относительно верхнего левого угла контейнера, содержащего этот элемент, в виде структуры типа Point. Структура содержит свойства X и Y

Height, Width

Высота и ширина элемента

Size

Высота и ширина элемента в виде структуры типа Size. Структура содержит свойства Height и Width

Created, Disposed, Enabled, Focused, Visible

Возвращают значения типа bool, определяющие текущее состояние элемента: создан, удален, использование разрешено, имеет фокус ввода, видимый

Handle

Возвращает дескриптор элемента (уникальное целочисленное значение, сопоставленное элементу)

ModifierKeys

Статическое свойство, используемое для проверки состояния модифицирующих клавиш (Shift, Control, Alt). Возвращает результат в виде объекта типа Keys

MouseButtons

Статическое свойство, проверяющее состояние клавиш мыши. Возвращает результат в виде объекта типа MouseButtons

Opacity

Определяет степень прозрачности элемента управления. Может изменяться от 0 (прозрачный) до 1 (непрозрачный)

Parent

Возвращает объект, родительский по отношению к данному (имеется в виду не базовый класс, а объект-владелец)

Region

Определяет объект Region, при помощи которого можно управлять очертаниями и границами элемента управления

TabIndex, TabStop

Используются для настройки последовательности перемещения с помощью клавиши Tab по элементам управления, расположенным на форме

Таблица 9.3 - Основные методы класса Control

Метод

Описание

Focus

Установка фокуса ввода на элемент

GetStyle, SetStyle

Получение и установка флагов управления стилем элемента. Используются значения перечисления ControlStyles (см. далее)

Hide, Show

Управление свойством Visible (Hide — скрыть элемент, Show — отобразить элемент)

Invalidate

Обновление изображения элемента путем отправки соответствующего сообщения в очередь сообщений. Метод перегружен таким образом, чтобы можно было обновлять не всю область, занимаемую элементом, а лишь ее часть

OnXXXX

Методы-обработчики событий (OnMouseMove, OnKeyDown, OnResize, OnPaint и т. п.), которые могут быть замещены в производных классах

Refresh

Обновление элемента и всех его дочерних элементов

SetBounds, SetLocation, SetClientArea

Управление размером и положением элемента

Перечисление ControlStyles задает возможные значения стиля формы в виде битовых флагов, поэтому можно использовать их комбинации. Значения всех констант перечисления можно посмотреть в электронной документации, а для первого знакомства достаточно одного — ResizeRedraw. Этот стиль определяет, что при изменении размеров формы она будет автоматически перерисована. По умолчанию перерисовка не выполняется, и если на форме есть какое-либо изображение, результат изменения размеров формы может сильно озадачить.

В таблице 9.4 перечислена небольшая часть событий, определенных в классе Control.

Таблица 9.4 - Некоторые события класса Control

Событие

Описание

Click, DoubleClick, MouseEnter, MouseLeave, MouseDown, MouseUp, MouseMove, MouseWheel

События от мыши

KeyPress, KeyUp, KeyDown

События от клавиатуры

BackColorChanged, ContextMenuChanged, FontChanged, Move, Paint, Resize

События изменения элемента

GotFocus, Leave, LostFocus

События получения и потери фокуса ввода

Применение наиболее важных элементов, описанных в таблицах, рассматривается в следующих разделах.

При написании приложений применяется два способа обработки событий:

  • замещение стандартного обработчика;

  • задание собственного обработчика.

В большинстве случаев применяется второй способ. Среда разработки создает заготовку обработчика по двойному щелчку на поле, расположенном справа от имени соответствующего события на вкладке Events окна свойств. При этом в код приложения автоматически добавляется строка, регистрирующая этот обработчик.

Первый способ, то есть переопределение виртуальных методов OnXXXX (OnMouseMove, OnKeyDown, OnResize, OnPaint и т. п.), применяется в основном тогда, когда перед реакцией на событие требуется выполнить какие-либо дополнительные действия.