Udostępnij za pośrednictwem


GiveFeedbackEventHandler Delegat

Definicja

Reprezentuje metodę, która obsługuje zdarzenie GiveFeedbackControl.

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)

Parametry

sender
Object

Źródło zdarzenia.

e
GiveFeedbackEventArgs

GiveFeedbackEventArgs, który zawiera dane zdarzenia.

Przykłady

W poniższym przykładzie pokazano operację przeciągania i upuszczania między dwoma kontrolkami ListBox. Przykład wywołuje metodę DoDragDrop po uruchomieniu akcji przeciągania. Akcja przeciągania rozpoczyna się, jeśli mysz przeniosła się więcej niż SystemInformation.DragSize z lokalizacji myszy podczas zdarzenia MouseDown. Metoda IndexFromPoint służy do określania indeksu elementu do przeciągania podczas zdarzenia MouseDown.

W przykładzie pokazano również użycie niestandardowych kursorów dla operacji przeciągania i upuszczania. W przykładzie przyjęto założenie, że dwa pliki kursorów, 3dwarro.cur i 3dwno.cur, istnieją w katalogu aplikacji, odpowiednio dla niestandardowego przeciągania i bez upuszczania kursorów. Kursory niestandardowe będą używane, jeśli zaznaczono UseCustomCursorsCheckCheckBox. Kursory niestandardowe są ustawiane w procedurze obsługi zdarzeń GiveFeedback.

Stan klawiatury jest obliczany w procedurze obsługi zdarzeń DragOver dla prawego ListBox, aby określić, jaka operacja przeciągania będzie oparta na stanie SHIFT, CTRL, ALT lub CTRL+ALT. Lokalizacja w ListBox, w której występuje spadek, jest również określana podczas zdarzenia DragOver. Jeśli dane do porzucenia nie są String, DragEventArgs.Effect jest ustawiona na wartość DragDropEffects.None. Na koniec stan upuszczania jest wyświetlany w DropLocationLabelLabel.

Dane do upuszczania odpowiedniego ListBox są określane w procedurze obsługi zdarzeń DragDrop, a wartość String jest dodawana w odpowiednim miejscu w ListBox. Jeśli operacja przeciągania przesuwa się poza granice formularza, operacja przeciągania i upuszczania zostanie anulowana w programie obsługi zdarzeń QueryContinueDrag.

Ten fragment kodu przedstawia użycie delegata GiveFeedbackEventHandler ze zdarzeniem GiveFeedback. Zobacz metodę DoDragDrop, aby zapoznać się z kompletnym przykładem kodu.

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

Uwagi

Podczas tworzenia delegata GiveFeedbackEventHandler należy zidentyfikować metodę, która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z procedurą obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Procedura obsługi zdarzeń jest wywoływana za każdym razem, gdy wystąpi zdarzenie, chyba że usuniesz delegata. Aby uzyskać więcej informacji na temat obsługi zdarzeń za pomocą delegatów, zobacz Obsługa i podnoszenie zdarzeń.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt reprezentujący metodę reprezentowaną przez określonego delegata.

Dotyczy

Zobacz też