Control.DragLeave Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывается, когда объект перетаскивается за пределы элемента управления.
public:
event EventHandler ^ DragLeave;
public event EventHandler DragLeave;
public event EventHandler? DragLeave;
member this.DragLeave : EventHandler
Public Custom Event DragLeave As EventHandler
Тип события
Примеры
В следующем примере кода демонстрируется операция перетаскивания между двумя ListBox элементами управления. В примере вызывается метод при DoDragDrop запуске действия перетаскивания. Действие перетаскивания начинается, если мышь переместилась больше, чем SystemInformation.DragSize из расположения мыши во время MouseDown события. Метод IndexFromPoint используется для определения индекса элемента, который необходимо перетащить во время MouseDown
события.
В примере также показано использование пользовательских курсоров для операции перетаскивания. В этом примере требуется, чтобы в каталоге приложения существовали два файла курсоров, 3dwarro.cur
и 3dwno.cur
, для настраиваемых курсоров перетаскивания и курсоров без перетаскивания соответственно. Пользовательские курсоры будут использоваться, если UseCustomCursorsCheck
CheckBox установлен флажок . Пользовательские курсоры задаются в обработчике GiveFeedback событий.
Состояние клавиатуры вычисляется в обработчике DragOver событий для правого ListBox
, чтобы определить, какая операция перетаскивания будет зависеть от состояния клавиш SHIFT, CTRL, ALT или CTRL+ALT. Расположение в объекте ListBox
, где будет происходить удаление, также определяется во время DragOver
события. Если данные, которые нужно удалить, не String
являются , то в параметре DragEventArgs.Effect задано значение None
DragDropEffects. Наконец, состояние удаления отображается в DropLocationLabel
Label.
Данные для удаления справа ListBox
определяются в обработчике DragDrop событий, а String
значение добавляется в соответствующее место в ListBox
. Если операция перетаскивания перемещается за пределы формы, то операция перетаскивания отменяется в обработчике QueryContinueDrag событий.
В этом фрагменте кода демонстрируется DragLeave использование события . Полный DoDragDrop пример кода см. в методе .
void ListDragTarget_DragLeave( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Reset the label text.
DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragLeave(object sender, EventArgs e)
{
// Reset the label text.
DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragLeave(ByVal sender As Object, ByVal e As EventArgs) Handles ListDragTarget.DragLeave
' Reset the label text.
DropLocationLabel.Text = "None"
End Sub
Комментарии
Событие DragLeave возникает, когда пользователь перетаскивает курсор из элемента управления или пользователь отменяет текущую операцию перетаскивания.
Далее описывается, как и когда возникают события, связанные с операциями перетаскивания.
Метод DoDragDrop определяет элемент управления в текущем расположении курсора. Затем он проверяет, является ли элемент управления допустимым целевым объектом удаления.
Если элемент управления является допустимым целевым объектом перетаскивания GiveFeedback , событие вызывается с указанным эффектом перетаскивания. Список эффектов перетаскивания см. в перечислении DragDropEffects.
Отслеживаются изменения позиции указателя мыши, состояния клавиатуры и кнопки мыши.
Если пользователь перемещает указатель мыши за пределы окна, происходит событие DragLeave.
Если указатель мыши перемещается на другой элемент управления, для этого элемента вызывается событие DragEnter.
При перемещении мыши в пределах одного элемента управления возникает событие DragOver.
При изменении состояния клавиатуры или кнопки мыши возникает событие, QueryContinueDrag которое определяет, следует ли продолжить перетаскивание, удалить данные или отменить операцию на основе значения Action свойства события QueryContinueDragEventArgs.
Если значение DragAction равно
Continue
, DragOver событие вызывается для продолжения операции, и GiveFeedback событие вызывается с новым эффектом, чтобы можно было задать соответствующую визуальную обратную связь. Список допустимых эффектов сброса см. в перечислении DragDropEffects.Примечание
DragOver События и GiveFeedback связаны таким образом, что при перемещении мыши по целевому объекту перетаскивания пользователю предоставляется самая актуальная обратная связь о положении мыши.
Если значение DragAction равно
Drop
, значение эффекта удаления возвращается в источник, чтобы исходное приложение смогла выполнить соответствующую операцию с исходными данными, например, вырезать данные, если операция была перемещением.Если значение DragAction равно
Cancel
, DragLeave вызывается событие .
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по