Событие Scroll (Прокрутка)
Возникает, когда пользователь изменяет положение бегунка в полосе прокрутки и может быть возбуждено для полосы прокрутки, диалогового окна и рамки. Источником события Scroll может быть также вызов метода Scroll для диалогового окна. Оно не наступает при изменении значения полосы прокрутки из программы или если пользователь щелкнул не бегунок.
Заголовок процедуры обработки события Scroll для полосы прокрутки имеет вид:
Private Sub объект_Scroll (),
- для набора страниц:
Private Sub объект_Scroll (index As Long, ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms. ReturnSingle, ByVal ActualDy As MSForms. ReturnSingle),
- для рамки и диалогового окна:
Private Sub объект_Scroll (ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms. ReturnSingle, ByVal ActualDy As MSForms. ReturnSingle).
Здесь параметры имеют следующий смысл:
- объект - имя объекта, которому принадлежит процедура,
- index - индекс страницы, на которой происходит прокрутка,
- ActionX - действие в горизонтальном направлении,
- ActionY - действие в вертикальном направлении,
- RequestDx - расстояние в точках, на которое требуется выполнить прокрутку по горизонтали,
- RequestDy - расстояние в точках, на которое требуется выполнить прокрутку по вертикали,
- ActualDx - расстояние в точках, на которое произошла прокрутка по горизонтали,
- ActualDy - расстояние в точках, на которое произошла прокрутка по вертикали.
Вот возможные значения параметров ActionX и ActionY:
- fmScrollActionNoChange = 0 нет изменений;
- fmScrollActionLineUp = 1 небольшой сдвиг вверх на вертикальной полосе; небольшой сдвиг влево на горизонтальной полосе; движение эквивалентно нажатию стрелок вверх и влево на клавиатуре;
- fmScrollActionLineDown = 2 небольшой сдвиг вниз на вертикальной полосе; небольшой сдвиг вправо на горизонтальной полосе; движение эквивалентно нажатию стрелок вниз и вправо на клавиатуре;
- fmScrollActionPageUp = 3 на одну страницу вверх на вертикальной полосе прокрутки, на одну страницу влево на горизонтальной полосе прокрутки; движение эквивалентно нажатию клавиши PgUp на клавиатуре для передвижения полосы прокрутки;
- fmScrollActionPageDown = 4 на одну страницу вниз на вертикальной полосе прокрутки, на одну страницу вправо на горизонтальной полосе прокрутки; движение эквивалентно нажатию клавиши PgDn на клавиатуре для передвижения полосы прокрутки;
- fmScrollActionBegin = 5 на верхний край вертикальной полосы прокрутки, на левый край горизонтальной полосы прокрутки;
- fmScrollActionEnd = 6 на нижний край вертикальной полосы прокрутки, на правый край горизонтальной полосы прокрутки;
- fmScrollActionPropertyChange = 8 означает, что изменилось значение свойства ScrollTop или свойства ScrollLeft; направления и размер сдвига зависят от того, какое из этих свойств изменилось и каково его новое значение;
- fmScrollActionControlRequest = 9 элемент управления запрашивает свой контейнер выполнить сдвиг; размер сдвига зависит от конкретных взаимодействующих элементов;
- fmScrollActionFocusRequest = 10 пользователь переходит к другому элементу управления; размер сдвига зависит от расположения выбранного элемента, этот элемент должен переместиться так, чтобы стать полностью видимым.
Событие Scroll с помощью параметров ActionX и ActionY сообщает о происшедшем действии, а с помощью параметров ActualDx и ActualDy передает расстояние, на которое перемещается полоса прокрутки. Используя эти данные, процедура обработки может вычислить новое положение бегунка в полосе и переместить его.