Control.DragEnter 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 auf, wenn ein Objekt in die Grenzen des Steuerelements gezogen wird.
public:
event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
public event System.Windows.Forms.DragEventHandler? DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler
Public Custom Event DragEnter As DragEventHandler
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 bewegt wurde. 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, 3dwarro.cur dass zwei Cursordateien und 3dwno.curim Anwendungsverzeichnis vorhanden sind, für die benutzerdefinierten Mauszeiger bzw. Cursor ohne Drop. Die benutzerdefinierten Cursor werden verwendet, wenn dies UseCustomCursorsCheckCheckBox aktiviert ist. Die benutzerdefinierten Cursor werden im GiveFeedback Ereignishandler festgelegt.
Der Tastaturzustand wird im DragOver Ereignishandler für die rechte ListBoxSeite ausgewertet, um zu bestimmen, was der Ziehvorgang auf dem Zustand der UMSCHALT-, STRG-, ALT- oder STRG+ALT-Tasten basiert. Die Position in der Stelle, an der ListBox der Abbruch erfolgt, wird auch während des DragOver Ereignisses bestimmt. Wenn es sich bei den zu löschenden Daten nicht um einen StringWert handelt, wird der DragEventArgs.Effect Wert auf None "In DragDropEffects" festgelegt. Schließlich wird der Status des Drops in der DropLocationLabelLabel.
Die für das Rechte ListBox ablegenden Daten werden im DragDrop Ereignishandler bestimmt, und der String Wert wird an der entsprechenden Stelle in der ListBox. 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 DragEnter . Sehen Sie sich die DoDragDrop Methode für das vollständige Codebeispiel an.
void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
// Reset the label text.
DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, DragEventArgs e)
{
// Reset the label text.
DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter
' Reset the label text.
DropLocationLabel.Text = "None"
End Sub
Hinweise
Das DragEnter Ereignis wird ausgelöst, wenn der Benutzer den Mauszeiger während eines Drag-and-Drop-Vorgangs zuerst über das Steuerelement zieht.
In den folgenden Informationen 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 das Steuerelement ein gültiges Dropziel ist, 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 das DragEnter 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 Ereignisses QueryContinueDragEventArgsabgebrochen werden soll.
Wenn der Wert DragAction lautet
Continue, 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 DragOver Ereignisse GiveFeedback und Ereignisse werden gekoppelt, sodass der Benutzer während der Mauseingabe über das Drop-Ziel das meiste up-to-Datumsfeedback an der Position der Maus erhält.
Wenn der Wert des Werts DragAction lautet
Drop, wird der Wert des Ablageeffekts an die Quelle zurückgegeben, sodass die Quellanwendung den entsprechenden Vorgang für die Quelldaten ausführen kann, z. B. die Daten ausschneiden, wenn der Vorgang eine Verschiebung war.Wenn der Wert DragAction lautet
Cancel, wird das DragLeave Ereignis ausgelöst.Anmerkung
Die X Eigenschaften und Eigenschaften der DragEventArgs Daten befinden sich in Bildschirmkoordinaten, nicht in ClientkoordinatenY. Die folgende Zeile von Visual C#-Code konvertiert die Eigenschaften in einen Client Point.
Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));
Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.