Control.QueryContinueDrag Control.QueryContinueDrag Control.QueryContinueDrag Control.QueryContinueDrag Event

Definition

Tritt während eines Drag & Drop-Vorgangs ein. Dadurch kann die Quelle des Ziehvorgangs bestimmen, ob der Drag & Drop-Vorgang abgebrochen werden soll.Occurs during a drag-and-drop operation and enables the drag source to determine whether the drag-and-drop operation should be canceled.

public:
 event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler 
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler 

Beispiele

Dieser Code Ausschnitt veranschaulicht die Verwendung QueryContinueDrag des-Ereignisses, um den Drag & Drop-Vorgang abzubrechen, wenn der Zieh Vorgang außerhalb der Begrenzungen des Formulars verschoben wird.This code excerpt demonstrates using the QueryContinueDrag event to cancel the drag-and-drop operation if the drag operation moves outside the bounds of the form. Das gesamte DoDragDrop Codebeispiel finden Sie unter der-Methode.See the DoDragDrop method for the complete code example.

void ListDragSource_QueryContinueDrag( Object^ sender, System::Windows::Forms::QueryContinueDragEventArgs^ e )
{
   // Cancel the drag if the mouse moves off the form.
   ListBox^ lb = dynamic_cast<ListBox^>(sender);
   if ( lb != nullptr )
   {
      Form^ f = lb->FindForm();

      // Cancel the drag if the mouse moves off the form. The screenOffset
      // takes into account any desktop bands that may be at the top or left
      // side of the screen.
      if ( ((Control::MousePosition.X - screenOffset.X) < f->DesktopBounds.Left) || ((Control::MousePosition.X - screenOffset.X) > f->DesktopBounds.Right) || ((Control::MousePosition.Y - screenOffset.Y) < f->DesktopBounds.Top) || ((Control::MousePosition.Y - screenOffset.Y) > f->DesktopBounds.Bottom) )
      {
         e->Action = DragAction::Cancel;
      }
   }
}
private void ListDragSource_QueryContinueDrag(object sender, System.Windows.Forms.QueryContinueDragEventArgs e) {
    // Cancel the drag if the mouse moves off the form.
    ListBox lb = sender as ListBox;

    if (lb != null) {

        Form f = lb.FindForm();

        // Cancel the drag if the mouse moves off the form. The screenOffset
        // takes into account any desktop bands that may be at the top or left
        // side of the screen.
        if (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) ||
            ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) ||
            ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) ||
            ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom)) {

            e.Action = DragAction.Cancel;
        }
    }
}
Private Sub ListDragSource_QueryContinueDrag(ByVal sender As Object, ByVal e As QueryContinueDragEventArgs) Handles ListDragSource.QueryContinueDrag
    ' Cancel the drag if the mouse moves off the form.
    Dim lb as ListBox = CType(sender, System.Windows.Forms.ListBox)

    If (lb isNot nothing) Then

        Dim f as Form = lb.FindForm()

        ' Cancel the drag if the mouse moves off the form. The screenOffset
        ' takes into account any desktop bands that may be at the top or left
        ' side of the screen.
        If (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) Or _
            ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) Or _
            ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) Or _
            ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom)) Then

            e.Action = DragAction.Cancel
        End If
    End if
End Sub

Hinweise

Das QueryContinueDrag -Ereignis wird ausgelöst, wenn während eines Drag & Drop-Vorgangs eine Änderung im Tastatur-oder Maustasten Zustand vorliegt.The QueryContinueDrag event is raised when there is a change in the keyboard or mouse button state during a drag-and-drop operation. Das QueryContinueDrag -Ereignis ermöglicht der Zieh Quelle, zu bestimmen, ob der Drag & Drop-Vorgang abgebrochen werden soll.The QueryContinueDrag event enables the drag source to determine whether the drag-and-drop operation should be canceled.

Nachfolgend wird beschrieben, wie und wann Ereignisse für Drag & Drop-Vorgänge ausgelöst werden.The following describes how and when events related to drag-and-drop operations are raised.

Die DoDragDrop -Methode bestimmt das Steuerelement unter der aktuellen Cursorposition.The DoDragDrop method determines the control under the current cursor location. Anschließend wird überprüft, ob das Steuerelement ein gültiges Ablage Ziel ist.It then checks to see if the control is a valid drop target.

Wenn das Steuerelement ein gültiges Ablage Ziel ist, GiveFeedback wird das-Ereignis ausgelöst, wenn der Drag & Drop-Effekt angegeben ist.If the control is a valid drop target, the GiveFeedback event is raised with the drag-and-drop effect specified. Eine Liste der Drag & Drop-Effekte finden Sie unter der DragDropEffects-Enumeration.For a list of drag-and-drop effects, see the DragDropEffects enumeration.

Änderungen der Mauszeigerposition, des Tastaturzustands und des Zustands der Maustasten werden verfolgt.Changes in the mouse cursor position, keyboard state, and mouse button state are tracked.

  • Wenn die Benutzeraktion das Fenster verlässt, wird das DragLeave-Ereignis ausgelöst.If the user moves out of a window, the DragLeave event is raised.

  • Wenn der Mauszeiger in ein anderes Steuerelement bewegt wird, wird das DragEnter-Ereignis für dieses Steuerelement ausgelöst.If the mouse enters another control, the DragEnter for that control is raised.

  • Wenn die Maus bewegt wird, ohne das Steuerelement zu verlassen, wird das DragOver-Ereignis ausgelöst.If the mouse moves but stays within the same control, the DragOver event is raised.

Wenn sich der Tastatur-oder Maustasten Zustand ändert, wird das QueryContinueDrag -Ereignis ausgelöst, und es wird bestimmt, ob der Zieh Vorgang fortgesetzt, die Daten abgelegt oder der Vorgang basierend auf dem Wert Action der- QueryContinueDragEventArgsEigenschaft des Ereignisses abgebrochen werden soll.If there is a change in the keyboard or mouse button state, the QueryContinueDrag event is raised and determines whether to continue the drag, to drop the data, or to cancel the operation based on the value of the Action property of the event's QueryContinueDragEventArgs.

  • Wenn der Wert von DragAction Continueauf festgelegt DragOver ist, wird das-Ereignis ausgelöst, um GiveFeedback den Vorgang fortzusetzen, und das-Ereignis wird mit dem neuen Effekt ausgelöst, sodass entsprechendes visuelles Feedback festgelegt werden kann.If the value of DragAction is Continue, the DragOver event is raised to continue the operation and the GiveFeedback event is raised with the new effect so appropriate visual feedback can be set. Eine Liste der gültigen Ablageeffekte finden Sie unter der DragDropEffects-Enumeration.For a list of valid drop effects, see the DragDropEffects enumeration.

    Hinweis

    Das DragOver - GiveFeedback Ereignis und das-Ereignis werden gekoppelt, damit dem Benutzer beim Bewegen der Maus über das Ablage Ziel das aktuellste Feedback an der Position der Maus gegeben wird.The DragOver and GiveFeedback events are paired so that as the mouse moves across the drop target, the user is given the most up-to-date feedback on the mouse's position.

  • Wenn der Wert von DragAction auf Dropfestgelegt ist, wird der Wert des Ablage Effekts an die Quelle zurückgegeben. die Quell Anwendung kann somit den entsprechenden Vorgang für die Quelldaten ausführen, z. b. die Daten Ausschneiden, wenn es sich um einen Verschiebe Vorgang handelt.If the value of DragAction is Drop, the drop effect value is returned to the source, so the source application can perform the appropriate operation on the source data; for example, cut the data if the operation was a move.

  • Wenn der Wert von DragAction ist Cancel, wird DragLeave das-Ereignis ausgelöst.If the value of DragAction is Cancel, the DragLeave event is raised.

Standardmäßig legt Action das QueryContinueDrag -Ereignis auf Cancel DragAction fest, wenn die ESC-Taste gedrückt wurde Action , und DragAction legt auf Drop fest, wenn die linke, mittlere oder Rechte Maustaste gedrückt wird.By default, the QueryContinueDrag event sets Action to Cancel in DragAction if the ESC key was pressed and sets Action to Drop in DragAction if the left, middle, or right mouse button is pressed.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about handling events, see Handling and Raising Events.

Gilt für:

Siehe auch