netlib.narod.ru< Назад | Оглавление | Далее >

Наследование класса ScrollableControl

Что же происходит за кадром? Как я уже говорил в главе 2, среди многих классов, от которых ведет свой род класс Form, есть ScrollableControl, и именно в нем реализована автопрокрутка. Мы уже столкнулись с двумя из шести свойств класса ScrollableControl и унаследованных классом Form.


Свойства класса ScrollableControl (выборочно)



Тип Имя Доступ Описание

bool AutoScroll Чтение/запись Включает автопрокрутку
bool VScroll Чтение/запись Наличие горизонтальной полосы прокрутки
bool HScroll Чтение/запись Наличие вертикальной полосы прокрутки
Size AutoScrollMargin Чтение/запись Устанавливает отступ справа и снизу от элемента управления
Size AutoScrollMinSize Чтение/запись Задает минимальную область прокрутки
Point AutoScrollPosition Чтение/запись Указывает положение полосы прокрутки


Свойства HScroll и VScroll позволяют вам узнать, видима ли в данный момент горизонтальная или вертикальная полоса прокрутки. (Предполагается, что эти свойства можно использовать и для того, чтобы скрыть отображение полосы прокрутки, однако, по-видимому, это средство не очень хорошо работает.) Свойство AutoScrollMinSize я подробно опишу чуть позже.

AutoScrollPosition содержит текущее положение прокрутки в отрицательных координатах. В SysInfoPanel значение свойства AutoScrollPosition совпадает со значением свойства Location панели. Однако методы доступа get и set свойства AutoScrollPosition несовместимы. При чтении свойства получаемые координаты всегда меньше или равны 0. Между тем при его записи координаты должны быть положительными. В главе 6 я приведу пример такой аномалии в программе SysInfоKeyboard, демонстрирующей работу с клавиатурой.

Очевидно, класс ScrollableControl имеет доступ к свойствам и событиям полос прокрутки; но он скрывает их от вас, предоставляя интерфейс более высокого уровня. При перемещении полосы прокрутки в SysInfoPanel код, содержащийся в классе ScrollableControl, изменяет для панели свойство Location, присваивая ему отрицательные значения. (Такое изменение легко проверить, добавив обработчик для события Move панели.) Отрицательные значения свойства Location означают, что верхний левый угол панели располагается выше и левее верхнего левого угла клиентской области. Такое перемещение создает видимость прокрутки содержимого панели внутри формы.

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz