ToolStripItem.DragEnter Zdarzenie

Definicja

Występuje, gdy użytkownik przeciąga element do obszaru klienta tego elementu.

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 

Typ zdarzenia

Atrybuty

Przykłady

Poniższy przykład kodu pokazuje, jak przekonwertować X właściwości i Y na klienta Point. Ten przykład kodu jest częścią większego przykładu udostępnionego ToolStripRenderer dla klasy .

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

Uwagi

Zdarzenie DragEnter jest wywoływane, gdy użytkownik najpierw przeciąga kursor myszy na element podczas operacji przeciągania i upuszczania.

W poniższych uwagach opisano, jak i kiedy są zgłaszane zdarzenia związane z operacjami przeciągania i upuszczania.

Metoda DoDragDrop określa element w bieżącej lokalizacji kursora. Następnie sprawdza, czy element jest prawidłowym elementem docelowym upuszczania.

Jeśli element jest prawidłowym elementem docelowym upuszczania, GiveFeedback zdarzenie jest wywoływane z określonym efektem przeciągania i upuszczania. Aby uzyskać listę efektów przeciągania i upuszczania, zobacz DragDropEffects wyliczenie.

Zmiany położenia kursora myszy, stanu klawiatury i stanu przycisku myszy są śledzone w następujący sposób:

  • Jeśli użytkownik wyjecha z okna, DragLeave zdarzenie zostanie zgłoszone.

  • Jeśli mysz wejdzie do innego elementu, zostanie podniesiona kontrolka DragEnter dla tej kontrolki.

  • Jeśli mysz porusza się, ale pozostaje w tym samym elemencie, DragOver zdarzenie jest zgłaszane.

W przypadku zmiany stanu klawiatury lub przycisku myszy zdarzenie jest zgłaszane i określa, QueryContinueDrag czy kontynuować przeciąganie, upuszczać dane, czy anulować operację na podstawie wartości Action właściwości zdarzenia QueryContinueDragEventArgs.

Jeśli wartość DragAction to Continue, DragOver zdarzenie jest zgłaszane, aby kontynuować operację, a GiveFeedback zdarzenie jest zgłaszane z nowym efektem, aby można było ustawić odpowiednią opinię wizualną. Aby uzyskać listę prawidłowych efektów upuszczania, zobacz DragDropEffects wyliczenie.

Zdarzenia DragOver i GiveFeedback są sparowane tak, aby w miarę poruszania się myszą w miejscu docelowym upuszczania, użytkownik otrzymuje najbardziej aktualne informacje zwrotne na pozycji myszy w następujący sposób:

  • Jeśli wartość DragActionDropto , wartość efektu drop jest zwracana do źródła, więc aplikacja źródłowa może wykonać odpowiednią operację na danych źródłowych, na przykład wyciąć dane, jeśli operacja była przeniesieniem.

  • Jeśli wartość DragAction to Cancel, DragLeave zdarzenie jest zgłaszane.

Uwaga

Właściwości XDragEventArgs i Y obiektu znajdują się we współrzędnych ekranu, a nie współrzędnych klienta.

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Dotyczy