Freigeben über


GiveFeedbackEventHandler Delegat

Definition

Stellt die Methode dar, die das GiveFeedback Ereignis eines Controlbehandelt.

public delegate void GiveFeedbackEventHandler(System::Object ^ sender, GiveFeedbackEventArgs ^ e);
public delegate void GiveFeedbackEventHandler(object sender, GiveFeedbackEventArgs e);
public delegate void GiveFeedbackEventHandler(object? sender, GiveFeedbackEventArgs e);
type GiveFeedbackEventHandler = delegate of obj * GiveFeedbackEventArgs -> unit
Public Delegate Sub GiveFeedbackEventHandler(sender As Object, e As GiveFeedbackEventArgs)

Parameter

sender
Object

Die Quelle des Ereignisses.

e
GiveFeedbackEventArgs

Eine GiveFeedbackEventArgs, die die Ereignisdaten enthält.

Beispiele

Im folgenden Beispiel 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. Im Beispiel wird davon ausgegangen, 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, welche Ziehoperation 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 keine Stringsind, wird die DragEventArgs.Effect auf DragDropEffects.Nonefestgelegt. 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 GiveFeedbackEventHandler Delegaten mit dem GiveFeedback-Ereignis. Die DoDragDrop-Methode finden Sie im vollständigen Codebeispiel.

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

Wenn Sie einen GiveFeedbackEventHandler Delegaten erstellen, identifizieren Sie die Methode, die das Ereignis behandelt. Um das Ereignis dem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird immer dann aufgerufen, wenn das Ereignis auftritt, es sei denn, Sie entfernen den Delegaten. Weitere Informationen zum Behandeln von Ereignissen mit Stellvertretungen finden Sie unter Behandeln und Auslösen von Ereignissen.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die vom angegebenen Delegaten dargestellte Methode darstellt.

Gilt für:

Weitere Informationen