Udostępnij za pośrednictwem


ToolStripItem.DragOver Zdarzenie

Definicja

Występuje, gdy użytkownik przeciąga element na obszar klienta tego elementu.

public:
 event System::Windows::Forms::DragEventHandler ^ DragOver;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragOver;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragOver;
[<System.ComponentModel.Browsable(false)>]
member this.DragOver : System.Windows.Forms.DragEventHandler 
Public Custom Event DragOver As DragEventHandler 

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 DragOver . 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 DragOver .

private void ToolStripItem1_DragOver(Object sender, DragEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "Data", e.Data );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "X", e.X );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Y", e.Y );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Effect", e.Effect );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "DragOver Event" );
}
Private Sub ToolStripItem1_DragOver(sender as Object, e as DragEventArgs) _ 
     Handles ToolStripItem1.DragOver

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "Data", e.Data)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "X", e.X)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Y", e.Y)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Effect", e.Effect)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"DragOver Event")

End Sub

Uwagi

Zdarzenie DragOver jest wywoływane, gdy kursor myszy przesuwa się w granicach kontrolki podczas operacji 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.

Dotyczy