Freigeben über


Drag-and-Drop-Funktionalität in Windows Forms

Windows Forms enthält eine Reihe von Methoden, Ereignissen und Klassen, die das Drag-and-Drop-Verhalten implementieren. Dieses Thema enthält eine Übersicht über die Drag-and-Drop-Unterstützung in Windows Forms. Siehe auch Drag-and-Drop-Vorgänge und Zwischenablageunterstützung.

Ausführen von Drag-and-Drop-Vorgängen

Zum Ausführen eines Drag-and-Drop-Vorgangs verwenden Sie die DoDragDrop-Methode der Control Klasse. Weitere Informationen dazu, wie ein Drag-and-Drop-Vorgang ausgeführt wird, finden Sie unter DoDragDrop. Um das Rechteck abzurufen, über das der Mauszeiger gezogen werden muss, bevor ein Drag-and-Drop-Vorgang beginnt, verwenden Sie die Eigenschaft DragSize der Klasse SystemInformation.

Es gibt zwei Kategorien von Ereignissen in einem Drag-and-Drop-Vorgang: Ereignisse, die auf dem aktuellen Ziel des Drag-and-Drop-Vorgangs stattfinden, und Ereignisse, die auf der Quelle des Drag-and-Drop-Vorgangs stattfinden.

Ereignisse für das aktuelle Ziel

Die folgende Tabelle zeigt die Ereignisse, die auf dem aktuellen Ziel eines Drag-and-Drop-Vorgangs auftreten.

Mouse-Ereignis Beschreibung
DragEnter Dieses Ereignis tritt auf, wenn ein Objekt in die Grenzen des Steuerelements gezogen wird. Der Handler für dieses Ereignis empfängt ein Argument vom Typ DragEventArgs.
DragOver Dieses Ereignis tritt auf, wenn ein Objekt gezogen wird, während sich der Mauszeiger innerhalb der Grenzen des Steuerelements befindet. Der Handler für dieses Ereignis empfängt ein Argument vom Typ DragEventArgs.
DragDrop Dieses Ereignis tritt auf, wenn ein Drag-and-Drop-Vorgang abgeschlossen ist. Der Handler für dieses Ereignis empfängt ein Argument vom Typ DragEventArgs.
DragLeave Dieses Ereignis tritt auf, wenn ein Objekt außerhalb der Grenzen des Steuerelements gezogen wird. Der Handler für dieses Ereignis empfängt ein Argument vom Typ EventArgs.

Die DragEventArgs-Klasse stellt die Position des Mauszeigers, den aktuellen Zustand der Maustasten und der Modifikatortasten auf der Tastatur, die gezogenen Daten und die DragDropEffects Werte bereit, die die zulässigen Vorgänge der Quelle des Ziehereignisses und den Zielablageeffekt für den Vorgang angeben.

Ereignisse in der Quelle

Die folgende Tabelle zeigt die Ereignisse, die in der Quelle des Drag-and-Drop-Vorgangs auftreten.

Mouse-Ereignis Beschreibung
GiveFeedback Dieses Ereignis tritt während eines Ziehvorgangs auf. Es bietet die Möglichkeit, dem Benutzer einen visuellen Hinweis zu geben, dass der Drag-and-Drop-Vorgang ausgeführt wird, indem z.B. der Mauszeiger geändert wird. Der Handler für dieses Ereignis empfängt ein Argument vom Typ GiveFeedbackEventArgs.
QueryContinueDrag Dieses Ereignis wird während eines Drag-and-Drop-Vorgangs ausgelöst und ermöglicht es der Quelle des Ziehvorgangs zu bestimmen, ob der Drag-and-Drop-Vorgang abgebrochen werden soll. Der Handler für dieses Ereignis empfängt ein Argument vom Typ QueryContinueDragEventArgs.

Die QueryContinueDragEventArgs Klasse stellt den aktuellen Zustand der Maustasten und Modifizierertasten der Tastatur bereit, einen Wert, der angibt, ob die ESC-Taste gedrückt wurde, und einen DragAction Wert, der festgelegt werden kann, um anzugeben, ob der Drag-and-Drop-Vorgang fortgesetzt werden soll.

Siehe auch