ToolStripItem.QueryContinueDrag 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 podczas operacji przeciągania i upuszczania i umożliwia źródło przeciągania w celu określenia, czy należy anulować operację przeciągania i upuszczania.
public:
event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler? QueryContinueDrag;
[<System.ComponentModel.Browsable(false)>]
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler
Typ zdarzenia
- Atrybuty
Przykłady
Poniższy przykład kodu przedstawia użycie tego elementu członkowskiego. W tym przykładzie program obsługi zdarzeń zgłasza wystąpienie zdarzenia QueryContinueDrag . Ten raport pomaga dowiedzieć się, kiedy wystąpi zdarzenie i może pomóc w debugowaniu. Aby zgłosić wiele zdarzeń lub zdarzeń, które występują często, rozważ zastąpienie MessageBox.Show komunikatu ciągiem Console.WriteLine lub dołączeniem go do wielowierszowego TextBoxelementu .
Aby uruchomić przykładowy kod, wklej go w projekcie zawierającym wystąpienie typu dziedziczonego z ToolStripItemelementu , takiego jak ToolStripButton lub ToolStripMenuItem. Następnie nadaj wystąpieniu ToolStripItem1 nazwę i upewnij się, że program obsługi zdarzeń jest skojarzony ze zdarzeniem QueryContinueDrag .
private void ToolStripItem1_QueryContinueDrag(Object sender, QueryContinueDragEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "QueryContinueDrag Event" );
}
Private Sub ToolStripItem1_QueryContinueDrag(sender as Object, e as QueryContinueDragEventArgs) _
Handles ToolStripItem1.QueryContinueDrag
Dim messageBoxVB as New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
messageBoxVB.AppendLine()
MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")
End Sub
Uwagi
Zdarzenie QueryContinueDrag jest wywoływane, gdy podczas operacji przeciągania i upuszczania występuje zmiana stanu klawiatury lub przycisku myszy. Zdarzenie QueryContinueDrag umożliwia źródło przeciągania w celu określenia, czy należy anulować operację przeciągania i upuszczania.
Poniższe uwagi opisują, jak i kiedy są wywoływane zdarzenia związane z operacjami przeciągania i upuszczania.
Metoda DoDragDrop określa element w bieżącej lokalizacji kursora. Następnie sprawdza, czy element jest prawidłowym celem upuszczania.
Jeśli element jest prawidłowym elementem docelowym upuszczania, GiveFeedback zdarzenie zostanie podniesione z określonym efektem przeciągania i upuszczania. Aby uzyskać listę efektów przeciągania i upuszczania, zobacz wyliczenie DragDropEffects .
Zmiany położenia kursora myszy, stanu klawiatury i stanu przycisku myszy są śledzone w następujący sposób:
Jeśli użytkownik zostanie przeniesiony z okna, DragLeave zdarzenie zostanie podniesione.
Jeśli mysz wprowadzi inny element, zostanie podniesiona kontrolka DragEnter dla tej kontrolki.
Jeśli mysz porusza się, ale pozostaje w tym samym elemencie, DragOver zdarzenie zostanie podniesione.
Jeśli istnieje zmiana stanu klawiatury lub przycisku myszy, QueryContinueDrag zdarzenie jest wywoływane i określa, czy kontynuować przeciąganie, upuszczać dane, czy anulować operację na podstawie wartości Action właściwości zdarzenia QueryContinueDragEventArgs.
Jeśli wartość DragAction to Continue, DragOver zdarzenie jest wywoływane, aby kontynuować operację, a GiveFeedback zdarzenie jest wywoływane z nowym efektem, aby można było ustawić odpowiednią opinię wizualną. Aby uzyskać listę prawidłowych efektów upuszczania, zobacz wyliczenie DragDropEffects .
Zdarzenia DragOver i GiveFeedback są sparowane w taki sposób, aby mysz przesuwała się przez cel upuszczania, użytkownik otrzymuje najbardziej aktualne opinie na temat położenia myszy w następujący sposób:
Jeśli wartość DragAction to
Drop, wartość efektu upuszczania 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 to
Cancel, DragLeave zdarzenie jest zgłaszane.