Поделиться через


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 экрана находятся в координатах экрана, а не в координатах клиента.

Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".

Применяется к