Control.GiveFeedback Událost

Definice

Vyvolá se při operaci přetažení.

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 

Event Type

Příklady

Následující příklad kódu 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í. Příklad vyžaduje, 3dwarro.cur aby v adresáři aplikace existovaly 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á bude operace přetažení 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, DragEventArgs.Effect nastaví se v DragDropEffectsna None hodnotu . 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í GiveFeedback události . 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

Událost GiveFeedback je vyvolána při spuštění operace přetažení. GiveFeedback U události může zdroj události přetažení změnit vzhled ukazatele myši, aby během operace přetažení poskytl vizuální zpětnou vazbu uživatele.

Následující článek popisuje, jak a kdy jsou vyvolány události související s operacemi přetahování.

Metoda DoDragDrop určuje ovládací prvek pod aktuálním umístěním kurzoru. Pak zkontroluje, jestli je ovládací prvek platným cílem přetažení.

Pokud je ovládací prvek platným cílem přetažení, GiveFeedback událost je vyvolána se zadaným efektem přetažení. Seznam efektů přetažení najdete ve výčtu DragDropEffects .

Změny v pozici kurzoru myši, stavu klávesnice a stavu tlačítka myši se sledují.

  • Pokud se uživatel přesune z okna, DragLeave událost se vyvolá.

  • Pokud myš přejde do jiného ovládacího prvku, DragEnter je aktivována hodnota pro tento ovládací prvek.

  • Pokud se myš přesune, ale zůstane ve stejném ovládacím DragOver prvku, vyvolá se událost.

Pokud dojde ke změně stavu tlačítka klávesnice nebo myši, QueryContinueDrag událost je vyvolána a určuje, zda pokračovat v přetažení, odstranit data nebo zrušit operaci na základě hodnoty Action vlastnosti události QueryContinueDragEventArgs.

  • Pokud je Continuehodnota DragAction , DragOver událost se vyvolá, aby operace pokračovala, a GiveFeedback událost se vyvolá s novým efektem, aby bylo možné nastavit odpovídající vizuální zpětnou vazbu. Seznam platných efektů přetažení najdete ve výčtu DragDropEffects .

    Poznámka

    DragOver Události a GiveFeedback se spárují tak, že když se myš přesune přes cíl přetažení, dostane uživatel nejaktuálnější zpětnou vazbu ohledně pozice myši.

  • Pokud je Drophodnota DragAction hodnota , vrátí se zdroji hodnota efektu poklesu, aby zdrojová aplikace mohl se zdrojovými daty provést příslušnou operaci, například vyjmout data, pokud se operace provedla přesunem.

  • Pokud je Cancelhodnota , DragActionDragLeave událost se vyvolá.

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Platí pro

Viz také