DragAction Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 UseCustomCursorsCheck
CheckBox 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 String
la valeur , le DragEventArgs.Effect est défini sur DragDropEffects.None. Enfin, le status de la suppression s’affiche dans .DropLocationLabel
Label
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 à
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour