Control.DragLeave Zdarzenie

Definicja

Występuje, gdy obiekt jest przeciągany z granic kontrolki.

C#
public event EventHandler DragLeave;
C#
public event EventHandler? DragLeave;

Typ zdarzenia

Przykłady

W poniższym przykładzie kodu 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. Przykład wymaga, aby dwa pliki kursorów, 3dwarro.cur i 3dwno.cur, istniały 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 None w DragDropEffects. 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 zdarzenia DragLeave. Zobacz metodę DoDragDrop, aby zapoznać się z kompletnym przykładem kodu.

C#
private void ListDragTarget_DragLeave(object sender, EventArgs e)
{
    // Reset the label text.
    DropLocationLabel.Text = "None";
}

Uwagi

Zdarzenie DragLeave jest wywoływane, gdy użytkownik przeciąga kursor poza kontrolkę lub użytkownik anuluje bieżącą operację przeciągania i upuszczania.

Poniżej opisano, jak i kiedy są wywoływane zdarzenia związane z operacjami przeciągania i upuszczania.

Metoda DoDragDrop określa kontrolkę w bieżącej lokalizacji kursora. Następnie sprawdza, czy kontrolka jest prawidłowym elementem docelowym upuszczania.

Jeśli kontrolka jest prawidłowym elementem docelowym upuszczania, zdarzenie GiveFeedback jest wywoływane z określonym efektem przeciągania i upuszczania. Aby uzyskać listę efektów przeciągania i upuszczania, zobacz wyliczenie DragDropEffects.

Śledzone są zmiany położenia kursora myszy, stanu klawiatury i stanu przycisku myszy.

  • Jeśli użytkownik wyjecha z okna, zostanie zgłoszone zdarzenie DragLeave.

  • Jeśli mysz wejdzie w inną kontrolkę, zostanie podniesiona DragEnter dla tej kontrolki.

  • Jeśli mysz porusza się, ale pozostaje w tej samej kontrolce, zostanie podniesione zdarzenie DragOver.

W przypadku zmiany stanu klawiatury lub przycisku myszy zdarzenie QueryContinueDrag jest wywoływane i określa, czy kontynuować przeciąganie, upuszczać dane, czy anulować operację na podstawie wartości właściwości ActionQueryContinueDragEventArgszdarzenia .

  • Jeśli wartość DragAction jest Continue, zdarzenie DragOver jest wywoływane w celu kontynuowania operacji, a zdarzenie GiveFeedback jest wywoływane z nowym efektem, dzięki czemu można ustawić odpowiednią opinię wizualną. Aby uzyskać listę prawidłowych efektów upuszczania, zobacz wyliczenie DragDropEffects.

    Uwaga

    Zdarzenia DragOver i GiveFeedback są sparowane tak, aby w miarę poruszania się myszą w miejscu docelowym upuszczania użytkownik otrzymał największą up-to- datę opinii na temat położenia myszy.

  • Jeśli wartość DragAction jest Drop, wartość efektu spadku jest zwracana do źródła, aby aplikacja źródłowa mogła wykonać odpowiednią operację na danych źródłowych; na przykład wyciąć dane, jeśli operacja została przeniesiona.

  • Jeśli wartość DragAction jest Cancel, zostanie zgłoszone zdarzenie DragLeave.

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Zobacz też