ToolStripItem.DragEnter Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ń.