Control.GiveFeedback 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 während eines Ziehvorgangs ein.
public:
event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler
Public Custom Event GiveFeedback As GiveFeedbackEventHandler
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. Das Beispiel erfordert, 3dwarro.cur
dass zwei Cursordateien und 3dwno.cur
im Anwendungsverzeichnis für die benutzerdefinierten Drag- und No-Drop-Cursor vorhanden sind. Die benutzerdefinierten Cursor werden verwendet, wenn der UseCustomCursorsCheck
CheckBox aktiviert ist. Die benutzerdefinierten Cursor werden im GiveFeedback Ereignishandler festgelegt.
Der Tastaturzustand wird im Ereignishandler für die DragOver richtige ListBox
ausgewertet, um zu bestimmen, welcher Ziehvorgang basierend auf dem Zustand der UMSCHALT-, STRG-, ALT- oder STRG+ALT-TASTEN erfolgt. Der Speicherort in dem, an dem ListBox
der Abbruch erfolgen würde, wird auch während des Ereignisses DragOver
bestimmt. Wenn es sich bei den zu löschenden Daten nicht um einen String
handelt, ist in auf DragEventArgs.EffectNone
DragDropEffectsfestgelegt. Schließlich wird der status des Drops in DropLocationLabel
Labelangezeigt.
Die Daten, die für die Rechte ListBox
gelöscht werden sollen, werden im DragDrop Ereignishandler bestimmt, und der String
Wert wird an der entsprechenden Stelle in hinzugefügt ListBox
. Wenn sich der Ziehvorgang außerhalb der Grenzen des Formulars bewegt, wird der Drag-and-Drop-Vorgang im QueryContinueDrag Ereignishandler abgebrochen.
In diesem Codeausschnitt wird die Verwendung des -Ereignisses GiveFeedback veranschaulicht. Das vollständige Codebeispiel finden Sie in der DoDragDrop -Methode.
void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
// Use custom cursors if the check box is checked.
if ( UseCustomCursorsCheck->Checked )
{
// Sets the custom cursor based upon the effect.
e->UseDefaultCursors = false;
if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
::Cursor::Current = MyNormalCursor;
else
::Cursor::Current = MyNoDropCursor;
}
}
private void ListDragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
// Use custom cursors if the check box is checked.
if (UseCustomCursorsCheck.Checked)
{
// Sets the custom cursor based upon the effect.
e.UseDefaultCursors = false;
if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
Cursor.Current = MyNormalCursor;
else
Cursor.Current = MyNoDropCursor;
}
}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback
' Use custom cursors if the check box is checked.
If (UseCustomCursorsCheck.Checked) Then
' Set the custom cursor based upon the effect.
e.UseDefaultCursors = False
If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
Cursor.Current = MyNormalCursor
Else
Cursor.Current = MyNoDropCursor
End If
End If
End Sub
Hinweise
Das GiveFeedback Ereignis wird ausgelöst, wenn ein Drag-and-Drop-Vorgang gestartet wird. Mit dem GiveFeedback Ereignis kann die Quelle eines Drag-Ereignisses die Darstellung des Mauszeigers ändern, um dem Benutzer während eines Drag-and-Drop-Vorgangs visuelles Feedback zu geben.
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 basierend auf dem Wert der Action -Eigenschaft des Ereignisses QueryContinueDragEventArgsabgebrochen werden soll.
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 geeignetes visuelles Feedback festgelegt werden kann. Eine Liste der gültigen Ablageeffekte finden Sie unter der DragDropEffects-Enumeration.Hinweis
Die DragOver Ereignisse und GiveFeedback werden gekoppelt, sodass der Benutzer während der Mausbewegung über das Ablageziel das aktuellste Feedback zur Mausposition erhält.
Wenn der Wert von ist
Drop
, wird der Wert des DragAction Löscheffekts 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 eine Verschiebung war.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