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