Синтаксис
Sub Form_StartDrag(data As DataObject, allowedeffects As Long)
Части синтаксической последовательности для события StartDrag приведены в таблице:
Часть
|
Описание
|
data |
Объект DataObject, содержащий форматы, которые обеспечивает
отправитель, и возможно, кроме того, данные для этих форматов. Если в
DataObject никакие данные не содержатся, то таковые предоставляются, когда
элемент управления вызывает метод GetData. Программисту следует устанавливать
значения данного параметра в этом событии. Методы SetData и Clear здесь
не могут быть использованы.
|
allowedeffects | Длинное целое, содержащее результаты, которые поддерживает компонент отправитель. Допустимые значения представлены в таблице Установок. В этом событии значения данного параметра устанавливаются программистом. |
Установки
Установки для параметра allowedeffects:
Константа
|
Установка
|
Описание
|
vbDropEffectNone
|
0 |
Получатель не может принять данные.
|
VbDropEffectCopy | 1 | Операция перетаскивания привела к передаче копии данных из источника в получатель. Исходные данные не изменяются в результате операции перетаскивания. |
VbDropEffectMove | 2 | Операция перетаскивания привела к перемещению данных из источника в получатель. Отправитель должен уничтожить свои данные после перемещения. |
Примечания
Компонент отправитель должен соединить посредством логической операции Or
поддерживаемые значения и поместить результат в параметр allowedeffects. Компонент
получатель может использовать это значение, чтобы определить подходящее действие
(и какой должна быть подходящая обратная связь с пользователем).
Событие StartDrag происходит также, когда для свойства компонента OLEDragMode
устанавливается значение Automatic. Это позволяет добавлять форматы и
данные к объекту DataObject после того, как компонент уже выполнит эти действия.
Можно переписать поведение компонента по умолчанию путем очистки объекта DataObject
(с использованием метода Clear) и последующего добавления данных и форматов.
Можно отложить загрузку данных в объект DataObject до их запроса компонентом получателем. Это позволяет сэкономить время на загрузке в компонент отправитель множественных форматов данных. Когда компонент получатель выполняет метод GetData объекта DataObject, будет происходить событие компонента источника OLESetData, если запрашиваемые данные не содержатся в объекте DataObject. В этой точке могут быть загружены данные в объект DataObject, который в свою очередь будет обеспечивать данными получатель.
Если пользователь не загружает никаких форматов в объект DataObject, то операция перетаскивания отменяется.