Control.DragLeave Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt ein, wenn ein Objekt aus den Grenzen des Steuerelements gezogen wird.
public:
event EventHandler ^ DragLeave;
public event EventHandler DragLeave;
public event EventHandler? DragLeave;
member this.DragLeave : EventHandler
Public Custom Event DragLeave As EventHandler
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird ein Drag-and-Drop-Vorgang zwischen zwei ListBox Steuerelementen veranschaulicht. Im Beispiel wird die DoDragDrop -Methode aufgerufen, wenn die Ziehaktion gestartet wird. Die Ziehaktion wird gestartet, wenn sich die Maus während MouseDown des Ereignisses mehr als SystemInformation.DragSize von der Mausposition bewegt hat. Die IndexFromPoint -Methode wird verwendet, um den Index des Elements zu bestimmen, das während des Ereignisses MouseDown
gezogen werden soll.
Das Beispiel veranschaulicht auch die Verwendung benutzerdefinierter Cursor für den Drag-and-Drop-Vorgang. Für das Beispiel müssen zwei Cursordateien ( 3dwarro.cur
und 3dwno.cur
) im Anwendungsverzeichnis für die benutzerdefinierten Cursor drag bzw. no drop vorhanden sein. Die benutzerdefinierten Cursor werden verwendet, wenn die UseCustomCursorsCheck
CheckBox aktiviert ist. Die benutzerdefinierten Cursor werden im GiveFeedback Ereignishandler festgelegt.
Der Tastaturzustand wird im DragOver Ereignishandler für die rechte ListBox
ausgewertet, um den Ziehvorgang basierend auf dem Zustand der TASTEN UMSCHALT, STRG, ALT oder STRG+ALT zu bestimmen. Die Position in der, an der ListBox
der Abbruch erfolgen würde, wird auch während des Ereignisses DragOver
bestimmt. Wenn die zu löschenden Daten keine String
sind, DragEventArgs.Effect wird in DragDropEffectsauf None
festgelegt. Schließlich wird die status des Drops im DropLocationLabel
Labelangezeigt.
Die für die rechte ListBox
Seite zu löschenden Daten werden im DragDrop -Ereignishandler bestimmt, und der String
Wert wird an der entsprechenden Stelle im ListBox
hinzugefügt. Wenn der Ziehvorgang außerhalb der Grenzen des Formulars verschoben wird, wird der Drag-and-Drop-Vorgang im QueryContinueDrag Ereignishandler abgebrochen.
Dieser Codeauszug veranschaulicht die Verwendung des -Ereignisses DragLeave . DoDragDrop Das vollständige Codebeispiel finden Sie in der -Methode.
void ListDragTarget_DragLeave( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Reset the label text.
DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragLeave(object sender, EventArgs e)
{
// Reset the label text.
DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragLeave(ByVal sender As Object, ByVal e As EventArgs) Handles ListDragTarget.DragLeave
' Reset the label text.
DropLocationLabel.Text = "None"
End Sub
Hinweise
Das DragLeave Ereignis wird ausgelöst, wenn der Benutzer den Cursor aus dem Steuerelement zieht oder der Benutzer den aktuellen Drag-and-Drop-Vorgang abbricht.
Nachfolgend wird beschrieben, wie und wann Ereignisse für Drag & Drop-Vorgänge ausgelöst werden.
Die DoDragDrop -Methode bestimmt das Steuerelement unter der aktuellen Cursorposition. Anschließend wird überprüft, ob das Steuerelement ein gültiges Ablageziel ist.
Wenn das Steuerelement ein gültiges Ablageziel ist, wird das GiveFeedback Ereignis mit dem angegebenen Drag-and-Drop-Effekt ausgelöst. Eine Liste der Drag & Drop-Effekte finden Sie unter der DragDropEffects-Enumeration.
Änderungen der Mauszeigerposition, des Tastaturzustands und des Zustands der Maustasten werden verfolgt.
Wenn die Benutzeraktion das Fenster verlässt, wird das DragLeave-Ereignis ausgelöst.
Wenn der Mauszeiger in ein anderes Steuerelement bewegt wird, wird das DragEnter-Ereignis für dieses Steuerelement ausgelöst.
Wenn die Maus bewegt wird, ohne das Steuerelement zu verlassen, wird das DragOver-Ereignis ausgelöst.
Wenn sich der Tastatur- oder Maustastenzustand ändert, wird das QueryContinueDrag Ereignis ausgelöst und bestimmt, ob der Ziehvorgang fortgesetzt, die Daten gelöscht oder der Vorgang abgebrochen werden soll, basierend auf dem Wert der Action -Eigenschaft des Ereignisses QueryContinueDragEventArgs.
Wenn der Wert von DragAction ist
Continue
, wird das DragOver -Ereignis ausgelöst, um den Vorgang fortzusetzen, und das GiveFeedback Ereignis wird mit dem neuen Effekt ausgelöst, sodass ein entsprechendes visuelles Feedback festgelegt werden kann. Eine Liste der gültigen Ablageeffekte finden Sie unter der DragDropEffects-Enumeration.Hinweis
Die DragOver Ereignisse und GiveFeedback werden so gekoppelt, dass der Benutzer während der Mausbewegung über das Drop-Ziel das aktuellste Feedback zur Mausposition erhält.
Wenn der Wert von ist
Drop
, wird der Wert für DragAction den Löscheffekt an die Quelle zurückgegeben, sodass die Quellanwendung den entsprechenden Vorgang für die Quelldaten ausführen kann. Beispielsweise schneiden Sie die Daten aus, wenn der Vorgang verschoben wurde.Wenn der Wert von DragAction ist
Cancel
, wird das DragLeave -Ereignis ausgelöst.
Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.
Gilt für:
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für