Control.DragLeave Ereignis

Definition

Tritt auf, 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 beginnt, wenn die Maus während des MouseDown Ereignisses mehr als SystemInformation.DragSize von der Mausposition verschoben hat. Die IndexFromPoint-Methode wird verwendet, um den Index des Elements zu bestimmen, das während des MouseDown-Ereignisses gezogen werden soll.

Das Beispiel veranschaulicht auch die Verwendung von benutzerdefinierten Cursorn für den Drag-and-Drop-Vorgang. Das Beispiel erfordert, dass zwei Cursordateien, 3dwarro.cur und 3dwno.cur, im Anwendungsverzeichnis vorhanden sind, für die benutzerdefinierten Mauszeiger bzw. Cursor ohne Drop. Die benutzerdefinierten Cursor werden verwendet, wenn die UseCustomCursorsCheckCheckBox aktiviert ist. Die benutzerdefinierten Cursor werden im GiveFeedback Ereignishandler festgelegt.

Der Tastaturzustand wird im DragOver Ereignishandler für die richtige ListBoxausgewertet, um zu bestimmen, was der Ziehvorgang auf dem Zustand der UMSCHALTTASTE, STRG, ALT oder STRG+ALT basiert. Die Position in der ListBox, an der der Abbruch erfolgen würde, wird auch während des DragOver-Ereignisses bestimmt. Wenn die zu löschenden Daten kein Stringsind, wird die DragEventArgs.Effect in DragDropEffectsauf None festgelegt. Schließlich wird der Status des Drops im DropLocationLabelLabelangezeigt.

Die für den richtigen ListBox zu löschenden Daten werden im DragDrop-Ereignishandler bestimmt, und der String Wert wird an der entsprechenden Stelle im ListBoxhinzugefü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 DragLeave-Ereignisses. Die DoDragDrop-Methode finden Sie im vollständigen Codebeispiel.

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.

Im Folgenden wird beschrieben, wie und wann Ereignisse im Zusammenhang mit Drag-and-Drop-Vorgängen ausgelöst werden.

Die DoDragDrop-Methode bestimmt das Steuerelement unter der aktuellen Cursorposition. Anschließend wird überprüft, ob das Steuerelement ein gültiges Drop-Ziel ist.

Wenn es sich bei dem Steuerelement um ein gültiges Dropziel handelt, wird das GiveFeedback-Ereignis mit dem angegebenen Drag-and-Drop-Effekt ausgelöst. Eine Liste der Drag-and-Drop-Effekte finden Sie in der DragDropEffects Enumeration.

Änderungen an der Mauscursorposition, dem Tastaturzustand und dem Maustastenzustand werden nachverfolgt.

  • Wenn der Benutzer aus einem Fenster wechselt, wird das DragLeave-Ereignis ausgelöst.

  • Wenn die Maus in ein anderes Steuerelement wechselt, wird die DragEnter für dieses Steuerelement ausgelöst.

  • Wenn sich die Maus bewegt, aber innerhalb desselben Steuerelements bleibt, 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 basierend auf dem Wert der Action Eigenschaft des QueryContinueDragEventArgsereignisses abgebrochen werden soll.

  • Wenn der Wert von DragActionContinueist, wird das DragOver-Ereignis ausgelöst, um den Vorgang fortzusetzen, und das GiveFeedback-Ereignis wird mit dem neuen Effekt ausgelöst, sodass entsprechende visuelles Feedback festgelegt werden kann. Eine Liste der gültigen Dropeffekte finden Sie in der DragDropEffects Enumeration.

    Anmerkung

    Die ereignisse DragOver und GiveFeedback werden gekoppelt, sodass der Benutzer beim Bewegen der Maus über das Drop-Ziel das up-to-datumsfeedback an der Position der Maus erhält.

  • Wenn der Wert von DragActionDropist, wird der Wert des Drop-Effekts an die Quelle zurückgegeben, damit die Quellanwendung den entsprechenden Vorgang für die Quelldaten ausführen kann; Schneiden Sie beispielsweise die Daten aus, wenn der Vorgang eine Verschiebung war.

  • Wenn der Wert von DragActionCancelist, wird das DragLeave-Ereignis ausgelöst.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln und Auslösen von Ereignissen.

Gilt für:

Weitere Informationen