Основы офисного программирования и язык VBA

         

Событие BeforeDragOver (Перед завершением перетаскивания)


Это событие, возникающее при перетаскивании элемента, можно использовать для управления курсором, когда он попадает, покидает или находится в площади объекта. При перетаскивании объекта система периодически возбуждает событие BeforeDragOver, когда пользователь перемещает мышь, нажимает или отпускает ее кнопки. Положение курсора определяет целевой объект, получающий это событие.

Набор параметров, передаваемых процедуре обработки события BeforeDragOver, зависит от вида элемента управления. Они имеют следующий вид.

  • для рамки (Frame) :

    Private Sub объект_BeforeDragOver (ByVal Cancel As MSForms. ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState) ;

  • для набора страниц (MultiPage) :

    Private Sub объект_BeforeDragOver (index As Long, ByVal Cancel As MSForms. ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState) ;

  • для полосы вкладок (TabStrip) :

    Private Sub объект_BeforeDragOver (index As Long, ByVal Cancel As MSForms. ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState) ;

  • для других элементов управления:

    Private Sub объект_BeforeDragOver (ByVal Cancel As MSForms. ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState).

Здесь объект - имя объекта, которому принадлежит процедура, index - индекс вкладки из набора вкладок, затрагиваемой операцией перетаскивания, Cancel - обязательный статус обработки события, False означает, что оно будет обрабатываться элементом (по умолчанию), True показывает, что событие будет обрабатываться приложением. Параметр ctrl - тот элемент, перетаскивание которого завершается.
Параметр Data содержит перетаскиваемые данные в формате объекта типа DataObject. Параметры X и Y задают горизонтальную и вертикальную координаты положения указателя мыши в элементе, измеряемые в точках. X - расстояние от левого края элемента, Y - от верхнего края. Параметр DragState указывает состояние указателя мыши относительно целевого элемента. Его возможные значения: fmDragStateEnter = 0 - указатель внутри целевого элемента, fmDragStateLeave = 1 - указатель вне области целевого элемента, fmDragStateOver = 2 - указатель находится в новом положении, но внутри того же элемента. Параметр Effect определяет возможные операции, выполняемые над опущенным исходным элементом. Его возможные значения те же, что и у описанного выше метода StartDrag. Параметр Shift задает состояние клавиш Shift, Ctrl и Alt. Его возможные значения: fmShiftMask = 1 - нажата клавиша Shift, fmCtrlMask = 2 - клавиша Ctrl, fmAltMask = 4 - Alt.
Большинство элементов управления не поддерживает перетаскивание при значении аргумента Cancel = False (это значение устанавливается по умолчанию). Эти элементы не позволяют перетащить что-либо на себя и не возбуждают событие BeforeDropOrPaste. Исключения - поле ввода (TextBox) и комбинированный список (ComboBox), разрешающие перетаскивание даже при значении параметра Cancel = False.

Содержание раздела