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.