ToolStripItem.DragEnter Událost

Definice

Nastane, když uživatel přetáhne položku do klientské oblasti této položky.

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 

Event Type

Atributy

Příklady

Následující příklad kódu ukazuje, jak převést X vlastnosti a Y na klienta Point. Tento příklad kódu je součástí většího příkladu ToolStripRenderer pro třídu.

// 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

Poznámky

Událost DragEnter je vyvolána, když uživatel poprvé přetáhne kurzor myši na položku během operace přetažení.

Následující poznámky popisují, jak a kdy jsou vyvolány události související s operacemi přetažení.

Metoda DoDragDrop určuje položku pod aktuálním umístěním kurzoru. Pak zkontroluje, jestli je položka platným cílem pro vyřazení.

Pokud je položka platným cílem přetažení, GiveFeedback událost se vyvolá se zadaným efektem přetažení. Seznam efektů přetažení najdete ve výčtu DragDropEffects .

Změny v umístění kurzoru myši, stavu klávesnice a stavu tlačítka myši se sledují následujícím způsobem:

  • Pokud se uživatel přesune mimo okno, vyvolá se DragLeave událost.

  • Pokud myš zadá jinou položku, DragEnter je vyvolána hodnota pro tento ovládací prvek.

  • Pokud se myš přesune, ale zůstane ve stejné položce, vyvolá se DragOver událost.

Pokud dojde ke změně stavu klávesnice nebo tlačítka myši, QueryContinueDrag vyvolá se událost a určí, jestli chcete pokračovat v přetažení, odstranit data nebo zrušit operaci na základě hodnoty Action vlastnosti události QueryContinueDragEventArgs.

Pokud hodnota je DragActionContinue, DragOver událost se vyvolá, aby pokračovala v operaci, a GiveFeedback událost se vyvolá s novým efektem, aby bylo možné nastavit odpovídající vizuální zpětnou vazbu. Seznam platných efektů přetažení najdete ve výčtu DragDropEffects .

Události DragOver a GiveFeedback se spárují tak, že při pohybu myši přes cíl přetažení dostane uživatel nejaktuálnější zpětnou vazbu o pozici myši, a to následujícím způsobem:

  • Pokud je Drophodnota DragAction je , vrátí se do zdroje hodnota efektu poklesu, takže zdrojová aplikace může se zdrojovými daty provést příslušnou operaci, například vyjmout data, pokud operace byla přesunem.

  • Pokud je Cancelhodnota parametru DragAction , vyvolá se DragLeave událost.

Poznámka

Vlastnosti XDragEventArgs a Y jsou v souřadnicích obrazovky, ne v souřadnicích klienta.

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Platí pro