Функциональная возможность перетаскивания в Windows Forms
Windows Forms включает набор методов, событий и классов, реализующих режим перетаскивания. В этом разделе приводится обзор поддержки перетаскивания в Windows Forms. Также см. в разделе и-операции перетаскивания и поддержка буфера обмена.
Выполнение операций перетаскивания
Для выполнения операций перетаскивания используйте метод DoDragDrop класса Control. Подробнее о том, как выполняется операция перетаскивания, см. в описании метода DoDragDrop. Для получения прямоугольника, над которым должен быть перемещен указатель мыши, чтобы началась операция перетаскивания, используется свойство DragSize класса SystemInformation.
События, относящиеся к операциям перетаскивания
С операцией перетаскивания связаны две категории событий: события, возникающие в текущем целевом объекте операции перетаскивания, и события, возникающие в ее исходном объекте.
События в текущем целевом объекте
В приведенной ниже таблице перечислены события, возникающие в текущем целевом объекте операции перетаскивания.
Событие мыши | Описание |
---|---|
DragEnter | Это событие происходит при перетаскивании объекта внутрь границ элемента управления. Обработчик этого события принимает аргумент типа DragEventArgs. |
DragOver | Это событие происходит при перетаскивании объекта, пока указатель мыши находится в пределах границ элемента управления. Обработчик этого события принимает аргумент типа DragEventArgs. |
DragDrop | Это событие происходит при завершении операции перетаскивания. Обработчик этого события принимает аргумент типа DragEventArgs. |
DragLeave | Это событие возникает при перемещении объекта за границы элемента управления. Обработчик этого события принимает аргумент типа EventArgs. |
В классе DragEventArgs содержится расположение указателя мыши, текущее состояние кнопок мыши и клавиш-модификаторов, перетаскиваемые данные и значения DragDropEffects, указывающие, какие операции допускаются источником события перетаскивания, и результат операции перетаскивания в целевой объект.
События в исходном объекте
В таблице ниже приведены события, возникающие в исходном объекте операции перетаскивания.
Событие мыши | Описание |
---|---|
GiveFeedback | Это событие возникает во время операции перетаскивания. Оно позволяет дать пользователю визуальную подсказку о том, что происходит операция перетаскивания, в виде, например, изменения указателя мыши. Обработчик этого события принимает аргумент типа GiveFeedbackEventArgs. |
QueryContinueDrag | Это событие возникает во время операции перетаскивания и позволяет исходному объекту определить, следует ли отменить эту операцию. Обработчик этого события принимает аргумент типа QueryContinueDragEventArgs. |
В классе QueryContinueDragEventArgs содержится текущее состояние кнопок мыши и клавиш-модификаторов, значение, указывающее, была ли нажата клавиша ESC, и значение DragAction, с помощью которого можно указать, следует ли продолжать операцию перетаскивания.