DragAction Énumération

Définition

Spécifie si une opération de glisser-déplacer doit se poursuivre et de quelle façon.

public enum class DragAction
[System.Runtime.InteropServices.ComVisible(true)]
public enum DragAction
public enum DragAction
[<System.Runtime.InteropServices.ComVisible(true)>]
type DragAction = 
type DragAction = 
Public Enum DragAction
Héritage
DragAction
Attributs

Champs

Cancel 2

L'opération est annulée sans aucun message de déplacement.

Continue 0

L'opération se poursuit.

Drop 1

L'opération s'arrête avec un déplacement.

Exemples

L’exemple suivant illustre une opération de glisser-déplacer entre deux ListBox contrôles. L’exemple appelle la DoDragDrop méthode lorsque l’action de glisser démarre. L’action glisser démarre si la souris s’est déplacée plus que SystemInformation.DragSize de l’emplacement de la souris pendant l’événement MouseDown . La IndexFromPoint méthode est utilisée pour déterminer l’index de l’élément à faire glisser pendant l’événement MouseDown .

L’exemple montre également l’utilisation de curseurs personnalisés pour l’opération de glisser-déplacer. L’exemple suppose que deux fichiers de curseur, 3dwarro.cur et 3dwno.cur, existent dans le répertoire de l’application, pour les curseurs de glisser-déplacer personnalisés, respectivement. Les curseurs personnalisés seront utilisés si le UseCustomCursorsCheckCheckBox est coché. Les curseurs personnalisés sont définis dans le gestionnaire d’événements GiveFeedback .

L’état du clavier est évalué dans le DragOver gestionnaire d’événements pour la droite ListBox, afin de déterminer l’opération de glissement en fonction de l’état des touches Maj, Ctrl, Alt ou Ctrl+Alt. L’emplacement dans le ListBox où la suppression se produirait est également déterminé pendant l’événement DragOver . Si les données à supprimer n’ont pas Stringla valeur , le DragEventArgs.Effect est défini sur DragDropEffects.None. Enfin, le status de la suppression s’affiche dans .DropLocationLabelLabel

Les données à supprimer pour la droite ListBox sont déterminées dans le DragDrop gestionnaire d’événements et la String valeur est ajoutée à l’emplacement approprié dans .ListBox Si l’opération de glissement se déplace en dehors des limites du formulaire, l’opération de glisser-déplacer est annulée dans le gestionnaire d’événements QueryContinueDrag .

Cet extrait de code illustre l’utilisation de l’énumération DragAction . Consultez la DoDragDrop méthode pour obtenir l’exemple de code complet.

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, 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, 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

Remarques

Cette énumération est utilisée par QueryContinueDragEventArgs.

S’applique à