Поделиться через


Функциональная возможность перетаскивания в Windows Forms

Windows Forms включает набор методов, событий и классов, реализующих поведение перетаскивания. В этом разделе приводится обзор поддержки перетаскивания в Windows Forms. Дополнительные сведения см. в следующем разделе. Операции перетаскивания и поддержка буфера обмена и Операции перетаскивания и поддержка буфера обмена.

Выполнение операций перетаскивания

Для выполнения операции перетаскивания используйте метод DoDragDrop класса Control. Дополнительные сведения о том, как выполняется операция перетаскивания, см. в разделе DoDragDrop. Для получения прямоугольника, над которым должен быть перемещен указатель мыши перед началом операции перетаскивания, используется свойство DragSize класса SystemInformation.

События, относящиеся к операциям перетаскивания

В операции перетаскивания имеется две категории событий: события, возникающие в текущей цели операции перетаскивания, и события, возникающие в источнике операции перетаскивания.

События в текущей цели

В приведенной ниже таблице содержатся события, возникающие в текущей цели операции перетаскивания.

Событие мыши

Описание

DragEnter

Событие происходит при перемещении объекта внутрь границ элемента управления. Обработчик этого события получает аргумент типа DragEventArgs.

DragOver

Это событие происходит, когда объект перетаскивается во время расположения указателя мыши в пределах границ элемента управления. Обработчик этого события получает аргумент типа DragEventArgs.

DragDrop

Это событие возникает после завершения операции перетаскивания. Обработчик этого события получает аргумент типа DragEventArgs.

DragLeave

Событие возникает при перемещении объекта за границы элемента управления. Обработчик этого события получает аргумента типа EventArgs.

В классе DragEventArgs содержится расположение указателя мыши, текущее состояние кнопок мыши и клавиш CTRL, SHIFT и ALT, перетаскиваемые данные и значения DragDropEffects, которые указывают, какие операции допускаются источником события перетаскивания и результат перетаскивания на цель для операции.

События в источнике

В следующей таблице приведены события, возникающие в источнике операции перетаскивания.

Событие мыши

Описание

GiveFeedback

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

QueryContinueDrag

Это событие возникает во время операции перетаскивания и позволяет источнику перетаскиваемого объекта определить, следует ли отменить эту операцию. Обработчик этого события получает аргумент типа QueryContinueDragEventArgs.

В классе QueryContinueDragEventArgs содержится текущее состояние кнопок мыши и клавиш CTRL, SHIFT и ALT, значение, указывающее, была ли нажата клавиша ESC, и значение DragAction, которое может быть установлено для указания того, следует ли продолжать операцию перетаскивания.

См. также

Другие ресурсы

Ввод данных мышью в приложении Windows Forms