Рассмотрев простейшие возможности использования пространства имен Windows . Forms на конкретных примерах, мы переходим к иерархии классов, показанной на рис. 8.20.
Диаграмма выглядит весьма устрашающе, но мы уделим основное внимание главной линии наследования:
System.ComponentModel .Component > Control
Из рис. 8.20 видно, что классы форм и элементов являются производными от класса Control. Например, генеалогия класса Form выглядит так:
ScrollableControl
>ContainerControl
> Form

Рис. 8.20. Иерархия классов пространства имен Windows.Forms
Текстовое поле входит в другую ветвь:
Control
> TextBoxBase
> RichTextBox
> TextBox
Иерархия основных разновидностей кнопочных элементов выглядит так:
Control
> ButtonBase
> Button
> CheckBox
> RadioButton
Класс Control вмещает в себя наибольшее количество функций (более 300) и обладает наибольшими функциональными возможностями. Классы форм и элементов объявляются производными от членов класса Control.
Класс Component является базовым классом для всех компонентов пространства имен System. Wi ndows. Forms. В нем собраны члены, необходимые для реализации включения (в частности, размещения элементов на форме или дочерних окон MDI в родительском окне MDI). В основном они реализованы в виде методов интерфейса IComponent. Поскольку класс Component также занимается освобождением ресурсов, расходуемых при визуальной разработке, он реализует IDisposable.
Поскольку класс Control является базовым для элементов и форм, он поддерживает многие операции пользовательского интерфейса, в том числе обработку событий клавиатуры и мыши. Кроме того, он определяет цвет, позицию и размер формы или элемента.
Использование средств базового класса Control (и в частности, обработка ключевых событий) рассматривается в следующем разделе.
Тем не менее сначала мы продолжим путь к формам в иерархии классов System. Windows. Forms. Поскольку среди предков класса Form числится ScrollableControl, формы VB обладают полезной особенностью, которую оценит каждый, кто пытался реализовать форму с прокруткой в VB6:
При выходе за грашцы текущего содержимого форма автоматически прокручивается. Взгляните на рис. 8.21 — на нем изображена форма, позволяющая прокручивать очень большую фрактальную картинку (более 5 Мбайт в запакованном виде!) с базовым множеством Мандельброта. За информацией о множестве Мандельброта обращайтесь по адресу www.olympus.net/personal/dewey/mandelbrot.html.
Прокрутку форм можно протестировать на любом изображении достаточно больших размеров:
