13. Drag & Drop - OLE-Drag&Drop

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
13. Drag & Drop
События Drag&Drop
OLE-Drag&Drop
Все страницы

OLE-Drag&Drop

Технология перетаскивания данных между приложениями называется OLE-Drag&Drop. Перетаскивание с использованием OLE-технологии также использует модель объектов источника и приемника, но в данном случае перемещается не элемент управления, а объект данных, что позволяет реализовать обмен данными с любыми приложениями, используя OLE-интерфейс Windows.

Процесс переноса следует выполнять в соответствии с правилами Windows. Если перетаскивание осуществляется только при нажатой кнопке мыши, то считается, что данные перемещаются из объекта-источника в объект-приемник, и по завершении переноса перемещенные данные в источнике следует удалить. Если перетаскивание выполняется при нажатой клавише Ctrl, то данные копируются.

При OLE-перетаскивании на стартовой стороне формируется пакет данных в соответствующем формате. Как и при обычном перетаскивании, процесс OLE-перетаскивания начинается вызовом метода DoDragDrop.

На принимающей стороне в обработчике события DragEnter следует проверить тип перетаскиваемой информации и указать допустимые действия: копирование или перемещение. Затем пакет данных принимается и соответствующим образом обрабатывается. Когда данные оставляются, для объекта-приемника происходит событие DragDrop.

Проверить тип перетаскиваемой информации можно с помощью метода GetDataPresent объекта DragEventArgs, который является параметром события DragEnter. Например:

If (e.Data.GetDataPresent(DataFormats.Text)) Then ...

Некоторые поля класса DataFormats:

Поле

Описание

Bitmap

Формат точечного рисунка Windows.

CommaSeparatedValue

Формат значений, разделенных запятой.

FileDrop

Формат обмена данными Windows.

Html

Текст, состоящий из данных HTML.

MetafilePict

Формат метафайла Windows.

Rtf

Текст, состоящий из данных формата Rich Text Format.

StringFormat

Формат строкового класса форм, который формы Windows Forms используют для хранения строковых объектов.

Text

Стандартный текстовый формат ANSI.

Tiff

Теговый формат файла изображения Windows.

UnicodeText

Стандартный текстовый формат Windows Unicode.

WaveAudio

Формат WAV.

После проверки необходимо назначить действие с помощью изменения свойства Effect параметра события DragEnter. Например:

If (e.Data.GetDataPresent(DataFormats.Text)) Then e.Effect = _ DragDropEffects.Copy

Далее необходимо написать обработчик события DragDrop для завершения перетаскивания, в этом обработчике должен находиться код, ответственный собственно за перемещение. Например, чтобы поместить текст в RichTextBox необходимо написать следующий код:

RichTextBox1.Text = e.Data.GetData(DataFormats.Text).ToString

Метод GetData возвращает данные, связанные с заданным форматом.

 



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры