Sdílet prostřednictvím


Control.DragLeave Událost

Definice

Nastane, když je objekt přetažen mimo hranice ovládacího prvku.

public:
 event EventHandler ^ DragLeave;
public event EventHandler DragLeave;
public event EventHandler? DragLeave;
member this.DragLeave : EventHandler 
Public Custom Event DragLeave As EventHandler 

Event Type

Příklady

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

Příklad také ukazuje použití vlastních kurzorů pro operaci přetažení. Příklad vyžaduje, aby byly dva soubory kurzoru, 3dwarro.cur a 3dwno.cur, existují v adresáři aplikace pro vlastní přetažení a bez-drop kurzory, v uvedeném pořadí. Vlastní kurzory se použijí, pokud je zaškrtnuté UseCustomCursorsCheckCheckBox. Vlastní kurzory jsou nastaveny v obslužné rutině události GiveFeedback.

Stav klávesnice se vyhodnocuje v obslužné rutině události DragOver pro správnou ListBox, aby bylo možné určit, jaké operace přetažení bude založená na stavu kláves SHIFT, CTRL, ALT nebo CTRL+ALT. Umístění v ListBox, kde dojde k poklesu, je také určeno během DragOver události. Pokud data, která chcete odstranit, nejsou String, je DragEventArgs.Effect nastavena na None v DragDropEffects. Nakonec se stav poklesu zobrazí v DropLocationLabelLabel.

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

Tento výňatek kódu ukazuje použití DragLeave události. Kompletní příklad kódu najdete v metodě DoDragDrop.

void ListDragTarget_DragLeave( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
  // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragLeave(object sender, EventArgs e)
{
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragLeave(ByVal sender As Object, ByVal e As EventArgs) Handles ListDragTarget.DragLeave
    ' Reset the label text.
    DropLocationLabel.Text = "None"
End Sub

Poznámky

Událost DragLeave se vyvolá, když uživatel přetáhne kurzor mimo ovládací prvek nebo uživatel zruší aktuální operaci přetažení.

Následující článek popisuje, jak a kdy jsou vyvolány události související s operacemi přetažení myší.

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 odstranění.

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

Změny v poloze kurzoru myši, stavu klávesnice a stavu tlačítka myši jsou sledovány.

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

  • Pokud myš přejde do jiného ovládacího prvku, DragEnter pro tento ovládací prvek se vyvolá.

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

Pokud dojde ke změně stavu klávesnice nebo tlačítka myši, vyvolá se událost QueryContinueDrag a určí, zda má pokračovat přetažením, přetažením dat nebo zrušením operace na základě hodnoty vlastnosti ActionQueryContinueDragEventArgsudálosti .

  • Pokud je hodnota DragActionContinue, vyvolá se událost DragOver, aby pokračovala v operaci a událost GiveFeedback je vyvolána 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 v DragDropEffects výčtu.

    Poznámka

    Události DragOver a GiveFeedback jsou spárované tak, aby se při přesouvání myši přes cíl přetažení dostal uživatel nejvíce up-to-date feedback na pozici myši.

  • Pokud je hodnota DragActionDrop, vrátí se do zdroje hodnota efektu poklesu, takže zdrojová aplikace může provést příslušnou operaci se zdrojovými daty; Například vyjměte data, pokud byla operace přesunutím.

  • Pokud je hodnota DragActionCancel, vyvolá se událost DragLeave.

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

Platí pro

Viz také