Control.DragLeave Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje, gdy obiekt jest przeciągany z granic kontrolki.
public:
event EventHandler ^ DragLeave;
public event EventHandler DragLeave;
public event EventHandler? DragLeave;
member this.DragLeave : EventHandler
Public Custom Event DragLeave As EventHandler
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 UseCustomCursorsCheck
CheckBox. 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 DropLocationLabel
Label.
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.
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
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.Nuta
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ń.