GiveFeedbackEventHandler Delegát

Definice

Představuje metodu, která zpracovává GiveFeedback událost objektu Control.

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

Zdroj události

e
GiveFeedbackEventArgs

A GiveFeedbackEventArgs , který obsahuje data události.

Příklady

Následující příklad ukazuje operaci přetažení mezi dvěma ListBox ovládacími prvky. Příklad volá metodu DoDragDrop při spuštění akce přetažení. Akce přetažení se spustí, pokud se myš během MouseDown události přesunula více než SystemInformation.DragSize z umístění myši. Metoda IndexFromPoint se používá k určení indexu položky, která se má během MouseDown události přetáhnout.

Příklad také ukazuje použití vlastních kurzorů pro operaci přetažení. V příkladu se předpokládá, 3dwarro.cur že v adresáři aplikace existují dva soubory kurzoru a 3dwno.cur, pro vlastní kurzory přetahování a bez přetažení. Vlastní kurzory se použijí, pokud je zaškrtnuté UseCustomCursorsCheckCheckBox políčko . Vlastní kurzory jsou nastaveny v obslužné rutině GiveFeedback události.

Stav klávesnice se vyhodnocuje v DragOver obslužné rutině události pro pravou ListBox, aby bylo možné určit, jaká operace přetažení bude na základě stavu kláves SHIFT, CTRL, ALT nebo CTRL+ALT. Během události se určí také umístění v ListBox místě, kde by k poklesu DragOver došlo. Pokud data, která se mají vypustit, nejsou String, je DragEventArgs.Effect vlastnost nastavená na DragDropEffects.None. Nakonec se stav přetažení zobrazí v DropLocationLabelLabel.

Data, která se mají vpravo vynechat ListBox , se určí v obslužné rutině DragDrop události a String hodnota se přidá na příslušném místě v ListBox. Pokud se operace přetažení přesune mimo hranice formuláře, operace přetažení se v obslužné rutině QueryContinueDrag události zruší.

Tento úryvek z kódu ukazuje použití delegáta GiveFeedbackEventHandler s událostí GiveFeedback . Kompletní příklad kódu najdete v DoDragDrop metodě .

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

Poznámky

Při vytváření delegáta GiveFeedbackEventHandler identifikujete metodu, která bude zpracovávat událost. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta. Další informace o zpracování událostí pomocí delegátů najdete v tématu Zpracování a vyvolávání událostí.

Metody rozšíření

GetMethodInfo(Delegate)

Získá objekt, který představuje metodu reprezentovanou zadaným delegátem.

Platí pro

Viz také