Класс Control является базовым для всех отображаемых элементов, то есть элементов, которые составляют графический интерфейс пользователя, например кнопок, списков, полей ввода и форм. Класс Control реализует базовую функциональность интерфейсных элементов. Он содержит методы обработки ввода пользователя с помощью мыши и клавиатуры, определяет размер, положение, цвет фона и другие характеристики элемента. Для каждого объекта можно определить родительский класс, задав свойство Parent, при этом объект будет иметь, например, такой же цвет фона, как и его родитель (речь идет не о наследовании, а о взаимоотношениях объектов во время выполнения программы, например, если на форме размещена кнопка, форма является родительским объектом по отношению к кнопке).
Наиболее важные свойства класса Control перечислены в табл. 14.2, методы — в табл. 14.3.
Таблица 14.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, Возвращают значения типа bool, определяющие текущее
Enabled, Focused, состояние элемента: создан, удален, использование
Visible разрешено, имеет фокус ввода, видимый
Handle Возвращает дескриптор элемента (уникальное целочисленное значение,
сопоставленное элементу)
ModifierKeys Статическое свойство, используемое для проверки состояния
модифицирующих клавиш (Shift, Control, Alt). Возвращает результат в виде
объекта типа Keys
MouseButtons Статическое свойство, проверяющее состояние клавиш мыши. Возвращае
результат в виде объекта типа MouseButtons
Opacity Определяет степень прозрачности элемента управления. Может изменяться от
0 (прозрачный) до 1 (непрозрачный)
Parent Возвращает объект, родительский по отношению к данному (имеется в виду н
базовый класс, а объект-владелец)
Region Определяет объект Region, при помощи которого можно управлять
очертаниями и границами элемента управления
TabIndex, TabStop Используются для настройки последовательности перемещения с помощью
клавиши Tab по элементам управления, расположенным на форме
Focus Установка фокуса ввода на элемент (в элемент, имеющий фокус ввода,
направляется ввод пользователя с клавиатуры)
GetStyle, SetStyle Получение и установка флагов управления стилем элемента. Используются
значения перечисления Control Styles (см. далее)
Hide, Show Управление свойством Visible (Hide — скрыть элемент, Show — отобразить
элемент)
Invalidate Обновление изображения элемента путем отправки соответствующего
сообщения в очередь сообщений. Метод перегружен таким образом, чтобы
можно было обновлять не всю область, занимаемую элементом, а лишь ее
часть
ОnХХХХ Методы-обработчики событий (OnMouseMove, OnKeyDown, OnResize,
OnPaint и т. п.), которые могут быть замещены в производных классах
Refresh Обновление элемента и всех его дочерних элементов
SetBounds, Управление размером и положением элемента SetLocation, SetClientArea
Перечисление Control Styles задает возможные значения стиля формы в виде битовых флагов, поэтому можно использовать их комбинации. Значения всех констант перечисления можно посмотреть в электронной документации, а для первого знакомства достаточно одного - ResizeRedraw. Этот стиль определяет, что при изменении размеров формы она будет автоматически перерисована. По умолчанию перерисовка не выполняется, и если на форме есть какое-либо изображение, результат изменения размеров формы может сильно озадачить.
В табл. 14.4 перечислена небольшая часть событий, определенных в классе Control.
Таблица 14.4. Некоторые события класса Control
Событие Описание
Click, DoubleClick, MouseEnter, MouseLeave, События от мыши MouseDown, MouselUp,
MouseMove, MouseWheel
KeyPress, KeyUp, KeyDown События от клавиатуры
BackColorChanged, ContextMenuChanged, События изменения элемента