ToolStripItem.DragEnter Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда пользователь перетаскивает элемент в клиентную область этого элемента.
public:
event System::Windows::Forms::DragEventHandler ^ DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragEnter;
[<System.ComponentModel.Browsable(false)>]
member this.DragEnter : System.Windows.Forms.DragEventHandler
Public Custom Event DragEnter As DragEventHandler
Тип события
- Атрибуты
Примеры
В следующем примере кода показано, как преобразовать X свойства и Y свойства в клиент Point. Этот пример кода является частью более крупного примера, предоставленного для ToolStripRenderer класса.
// This method defines the DragOver event behavior.
protected override void OnDragOver(DragEventArgs dea)
{
base.OnDragOver(dea);
// Get the ToolStripButton control
// at the given mouse position.
Point p = new Point(dea.X, dea.Y);
ToolStripButton item = this.GetItemAt(
this.PointToClient(p)) as ToolStripButton;
// If the ToolStripButton control is the empty cell,
// indicate that the move operation is valid.
if( item == this.emptyCellButton )
{
// Set the drag operation to indicate a valid move.
dea.Effect = DragDropEffects.Move;
}
}
' This method defines the DragOver event behavior.
Protected Overrides Sub OnDragOver(dea As DragEventArgs)
MyBase.OnDragOver(dea)
' Get the ToolStripButton control
' at the given mouse position.
Dim p As New Point(dea.X, dea.Y)
Dim item As ToolStripButton = CType(Me.GetItemAt(Me.PointToClient(p)), ToolStripButton)
' If the ToolStripButton control is the empty cell,
' indicate that the move operation is valid.
If item Is Me.emptyCellButton Then
' Set the drag operation to indicate a valid move.
dea.Effect = DragDropEffects.Move
End If
End Sub
Комментарии
Событие DragEnter возникает, когда пользователь сначала перетаскивает курсор мыши над элементом во время операции перетаскивания.
В следующих замечаниях описывается, как возникают события, связанные с операциями перетаскивания.
Метод DoDragDrop определяет элемент в текущем расположении курсора. Затем он проверяет, является ли элемент допустимым целевым объектом удаления.
Если элемент является допустимым целевым объектом удаления, GiveFeedback событие вызывается с заданным эффектом перетаскивания. Список эффектов перетаскивания см. в DragDropEffects перечислении.
Изменения положения курсора мыши, состояния клавиатуры и состояния кнопки мыши отслеживаются следующим образом:
Если пользователь выходит из окна, DragLeave событие вызывается.
Если мышь вводит другой элемент, DragEnter вызывается элемент управления.
Если мышь перемещается, но остается в одном элементе, DragOver вызывается событие.
При изменении состояния QueryContinueDrag клавиатуры или кнопки мыши событие вызывается и определяет, следует ли продолжать перетаскивание данных или отменять операцию на основе значения Action свойства события QueryContinueDragEventArgs.
Если значение DragActionContinueравно, DragOver событие вызывается для продолжения операции, и GiveFeedback событие вызывается с новым эффектом, чтобы можно было задать соответствующую визуальную обратную связь. Список допустимых эффектов удаления см. в DragDropEffects перечислении.
События DragOverGiveFeedback связаны таким образом, чтобы при перемещении мыши по целевому объекту удаления пользователь получил наиболее up-to-date отзыв о положении мыши следующим образом:
Если значение DragActionDropравно, значение эффекта удаления возвращается источнику, поэтому исходное приложение может выполнять соответствующую операцию с исходными данными, например, вырезать данные, если операция была перемещением.
Если значение DragAction равно Cancel, DragLeave событие вызывается.
Замечание
Y DragEventArgs Свойства X экрана находятся в координатах экрана, а не в координатах клиента.
Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".