Класс System.Windows.Forms.Control задает общее поведение, ожидаемое от любого GUI-типа. Базовые члены Control позволяют указать размер и позицию элемента управления, выполнить захват событий клавиатуры и мыши, получить и установить фокус ввода, задать и изменить видимость членов и т.д. В табл. 19.4 определяются некоторые (но, конечно же, не все) свойства, сгруппированные по функциональности.
Таблица 19.4.Базовые свойства типа Control
Свойства |
Описание |
BackColor, ForeColor, BackgroundImage, Font, Cursor |
Определяют базовые параметры визуализации элемента управления (цвет, шрифт для текста, вид указателя мыши при его размещении на элементе и т.д.) |
Anchor, Dock, AutoSize |
Контролируют параметры размещения элемента управления в контейнере |
Top, Left, Bottom, Right, Bounds, ClientRectangle, Height, Width |
Указывают текущие размеры элемента управления |
Enabled, Focused, Visible |
Каждое из этих свойств возвращает значение типа Boolean, указывающее соответствующую характеристику состояния элемента управления |
ModifierKeys |
Статическое свойство, содержащее информацию о текущем состоянии модифицирующих клавиш (‹Shift›, ‹Ctrl› и ‹Alt›) и возвращающее эту информацию в вида типа Keys |
MouseButtons |
Статическое свойство, содержащее информацию о текущем состоянии кнопок мыши (левой, правой и средней) и возвращающее эту информацию в виде типа MouseButtons |
TabIndex, TabStop |
Используются для указания порядка переходов по клавише табуляции для элемента управления |
Opacity |
Определяет степень прозрачности элемента управления в дробных единицах (0.0 соответствует абсолютной прозрачности, а 1.0 – абсолютной непрозрачности) |
Text |
Указывает текстовые данные, ассоциируемые с элементом управления |
Controls |
Позволяет получить доступ к строго типизованной коллекции (ControlsCollection), содержащей все дочерние элементы управления, существующие в рамках данного элемента управления |
Кроме того, класс Control определяет ряд событий, позволяющих реагировать на изменение состояния мыши, клавиатуры, действия выделения и перетаскивания объектов (а также на многие другие действия). В табл. 19.5 предлагается описок некоторых (но далеко не всех) событий, сгруппированных по функциональности.
Таблица 19.5.События типа Control
События |
Описание |
Click, DoubleClick, MouseEnter, MouseLeave, MouseDown, MouseUp, MouseMove, MouseHover, MouseWheel |
События, позволяющие учитывать состояние мыши |
KeyPress, KeyUp, KeyDown |
События, позволяющие учитывать состояние клавиатуры |
DragDrop, DragEnter, DragLeave, DragOver |
События, используемые для контроля действий, связанных с перетаскиванием объектов |
Paint |
События, позволяющие взаимодействовать с GDI+ (см. главу 20) |
Наконец, базовый класс Control определяет целый ряд методов, позволяющих взаимодействовать с любым типом, производным от Control. При ближайшем рассмотрений методов Control вы обнаружите, что многие из них имеют префикс On, за которым следует имя соответствующего события (OnMouseMove, OnKeyUp, OnPaint и т.д.). Каждый из этих снабженных префиксом виртуальных методов представляет собой обработчик соответствующего события, заданный по умолчанию. Переопределив такой виртуальный член, вы получаете возможность выполнить необходимую предварительную (или заключительную) обработку данных, перед вызовом (или после вызова) родительской реализации обработчика события.
public class MainWindow: Form {
protected overridevoid OnMouseDown(MouseEventArgs e) {
// Добавленный программный код для события MouseDown.
// Вызов родительской реализации.
base.OnMouseDown(e);
}
}
Это может оказаться полезным, например, при создании пользовательских элементов управления, которые получаются из стандартных (см. главу 21), но чаще всего вы будете использовать обработку событий в рамках стандартного синтаксиса событий C# (именно это предлагается средствами проектирования Visual Studio 2005 по умолчанию). В этом случае среда разработки вызовет пользовательский обработчик события после завершения работы родительской реализации.
public class MainWindow: Form {
public MainWindow() {
MouseDown += new MouseEventHandler(MainWindow_MouseDown);
}
void MainWindow_MouseDown(object sender, MouseEventArgs e) {
// Добавленный программный код для события MouseDown.
}
}
Кроме методов вида OnХХХ(), есть несколько других методов, о которые вам следует знать.
• Hide(). Скрывает элемент управления, устанавливая для его свойства Visible значение false (ложь).
Читать дальше