Перетаскивание текста в C#

В этом примере показано, как позволить программе перетаскивать текст как между его элементами управления, так и с помощью элементов управления перетаскиванием в других приложениях.

Во-первых, чтобы получить падение, вы должны установить свойство AllowDrop элемента управления true. Если вы забудете сделать это (очень распространенная ошибка), то перетаскивание кажется неэффективным, и вы можете очень запутаться, пытаясь понять, почему это не сработает.

Чтобы начать перетаскивание, используйте метод DoDragDrop элемента управления. Элемент управления, запускающий перетаскивание, называется источником сопротивления . Следующий код запускает перетаскивание, когда пользователь нажимает правую кнопку мыши над меткой lblDragSource.

Код передает данные «Вот какой текст!» в метод DoDragDrop. Это сообщает системе, какие данные вы хотите сбросить. Второй параметр указывает, что элемент управления предлагает копировать текст, а не перемещать его или выполнять некоторые другие действия.

Когда перетаскивание перемещается над элементом управления с AllowDrop = true, срабатывает событие DragEnter. Этот элемент управления называется целевым объектом .

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

Перетаскивание может одновременно выполнять другие операции. Вот почему код использует & amp; чтобы увидеть, есть ли e.AllowedEffect бит, соответствующий операции копирования.

Код сообщает системе перетаскивания, какой именно курсор отображать, установив e.Effect. В этом примере, если текст доступен для копирования, код устанавливает эффект на Copy, чтобы указать, что элемент управления может принять копию. Если текст недоступен или операция копирования не предлагается источником перетаскивания, элемент управления не дает эффекта.

Наконец, когда пользователь удаляет текст поверх целевой цели, которая разрешает текущую операцию, срабатывает событие DragDrop.

В этом примере код получает объект данных e.Data, использует его метод GetData для получения доступных текстовых данных и отображает его в целевой точке label lblDropTarget.

Источник: http://csharphelper.com/blog/2015/02/drag-and-drop-text-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *