ToolStripItem.DragOver Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда пользователь перетаскивает элемент в клиентскую область данного элемента.
public:
event System::Windows::Forms::DragEventHandler ^ DragOver;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragOver;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragOver;
[<System.ComponentModel.Browsable(false)>]
member this.DragOver : System.Windows.Forms.DragEventHandler
Public Custom Event DragOver As DragEventHandler
Тип события
- Атрибуты
Примеры
В следующем примере кода показано использование этого элемента. В этом примере обработчик событий сообщает о возникновении DragOver события. Этот отчет поможет вам узнать, когда происходит событие, и поможет вам в отладке. Чтобы сообщить о нескольких событиях или о событиях, которые происходят часто, рекомендуется заменить MessageBox.ShowConsole.WriteLine сообщение или добавить его в многостроочный TextBox.
Чтобы выполнить пример кода, вставьте его в проект, содержащий экземпляр типа, наследуемого от ToolStripItem, например ToolStripButton или ToolStripMenuItem. Затем присвойте экземпляру ToolStripItem1
имя и убедитесь, что обработчик событий связан с событием DragOver .
private void ToolStripItem1_DragOver(Object sender, DragEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "Data", e.Data );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "X", e.X );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Y", e.Y );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Effect", e.Effect );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "DragOver Event" );
}
Private Sub ToolStripItem1_DragOver(sender as Object, e as DragEventArgs) _
Handles ToolStripItem1.DragOver
Dim messageBoxVB as New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "Data", e.Data)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "X", e.X)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Y", e.Y)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Effect", e.Effect)
messageBoxVB.AppendLine()
MessageBox.Show(messageBoxVB.ToString(),"DragOver Event")
End Sub
Комментарии
Событие DragOver возникает при перемещении курсора мыши в пределах элемента управления во время операции перетаскивания.
В следующих примечаниях описывается, как и когда возникают события, связанные с операциями перетаскивания.
Метод DoDragDrop определяет элемент в текущем расположении курсора. Затем он проверяет, является ли элемент допустимым целевым объектом удаления.
Если элемент является допустимым целевым объектом перетаскивания, GiveFeedback событие вызывается с указанным эффектом перетаскивания. Список эффектов перетаскивания см. в перечислении DragDropEffects.
Изменения положения курсора мыши, состояния клавиатуры и состояния кнопки мыши отслеживаются следующим образом:
Если пользователь перемещает указатель мыши за пределы окна, происходит событие DragLeave.
Если мышь входит в другой элемент, DragEnter вызывается для этого элемента управления .
Если мышь перемещается, но остается в пределах того же элемента, DragOver возникает событие .
При изменении состояния клавиатуры или кнопки мыши возникает событие, QueryContinueDrag которое определяет, следует ли продолжить перетаскивание, удалить данные или отменить операцию на основе значения Action свойства события QueryContinueDragEventArgs.
Если значение DragAction равно Continue, DragOver событие вызывается для продолжения операции, и GiveFeedback событие вызывается с новым эффектом, чтобы можно было задать соответствующую визуальную обратную связь. Список допустимых эффектов сброса см. в перечислении DragDropEffects.
DragOver События и GiveFeedback связаны таким образом, что при перемещении мыши через целевой объект перетаскивания пользователю предоставляется самый актуальный отзыв о положении мыши, как показано ниже.
Если значение DragAction равно Drop, значение эффекта удаления возвращается источнику, чтобы исходное приложение смогла выполнить соответствующую операцию с исходными данными, например вырезать данные, если операция была перемещением.
Если значение DragAction равно Cancel, DragLeave возникает событие .