Control.DragEnter Control.DragEnter Control.DragEnter Control.DragEnter Event

Définition

Se produit lorsqu'un objet est déplacé dans les limites d'un contrôle.Occurs when an object is dragged into the control's bounds.

public:
 event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler 
Public Custom Event DragEnter As DragEventHandler 

Exemples

L’exemple de code suivant illustre une opération de glisser-déplacer entre deux ListBox contrôles.The following code example demonstrates a drag-and-drop operation between two ListBox controls. L’exemple appelle la DoDragDrop méthode lorsque l’action glisser commence.The example calls the DoDragDrop method when the drag action starts. L’action glisser démarre si la souris a été déplacé plus de SystemInformation.DragSize à partir de l’emplacement de la souris pendant la MouseDown événement.The drag action starts if the mouse has moved more than SystemInformation.DragSize from the mouse location during the MouseDown event. Le IndexFromPoint méthode est utilisée pour déterminer l’index de l’élément à faire glisser pendant la MouseDown événement.The IndexFromPoint method is used to determine the index of the item to drag during the MouseDown event.

Il illustre également l’utilisation de curseurs personnalisés pour l’opération de glisser-déplacer.The example also demonstrates using custom cursors for the drag-and-drop operation. L’exemple suppose que deux fichiers curseur, 3dwarro.cur et 3dwno.cur, existent dans le répertoire de l’application, pour le glisser-déplacer personnalisés-déplacer et les curseurs, respectivement.The example requires that two cursor files, 3dwarro.cur and 3dwno.cur, exist in the application directory, for the custom drag and no-drop cursors, respectively. Les curseurs personnalisés sont utilisés si le UseCustomCursorsCheck CheckBox est activée.The custom cursors will be used if the UseCustomCursorsCheckCheckBox is checked. Les curseurs personnalisés sont définis dans le GiveFeedback Gestionnaire d’événements.The custom cursors are set in the GiveFeedback event handler.

L’état du clavier est évalué dans le DragOver Gestionnaire d’événements pour le droit ListBox, afin de déterminer l’opération glisser en fonction de l’état des touches MAJ, CTRL, ALT ou CTRL + ALT.The keyboard state is evaluated in the DragOver event handler for the right ListBox, to determine what the drag operation will be based on state of the SHIFT, CTRL, ALT, or CTRL+ALT keys. L’emplacement dans le ListBox où le déplacement peut avoir lieu est également déterminé lors de la DragOver événement.The location in the ListBox where the drop would occur is also determined during the DragOver event. Si les données à déplacer ne sont pas un String, puis le DragEventArgs.Effect a la valeur None dans DragDropEffects.If the data to drop is not a String, then the DragEventArgs.Effect is set to None in DragDropEffects. Enfin, l’état de la liste déroulante s’affiche dans le DropLocationLabel Label.Finally, the status of the drop is displayed in the DropLocationLabelLabel.

Les données à déplacer pour le droit ListBox est déterminé dans le DragDrop Gestionnaire d’événements et le String valeur est ajoutée à l’emplacement approprié dans le ListBox.The data to drop for the right ListBox is determined in the DragDrop event handler and the String value is added at the appropriate place in the ListBox. Si l’opération glisser va au-delà des limites du formulaire, l’opération de glisser-déplacer est annulée dans le QueryContinueDrag Gestionnaire d’événements.If the drag operation moves outside the bounds of the form, then the drag-and-drop operation is canceled in the QueryContinueDrag event handler.

Cet extrait de code montre comment utiliser le DragEnter événement.This code excerpt demonstrates using the DragEnter event. Consultez le DoDragDrop méthode pour l’exemple de code complet.See the DoDragDrop method for the complete code example.

void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
   // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) {
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter

    ' Reset the label text.
    DropLocationLabel.Text = "None"
End Sub

Remarques

Le DragEnter événement est déclenché lorsque l’utilisateur tout d’abord fait glisser le curseur de la souris sur le contrôle pendant une opération de glisser-déplacer.The DragEnter event is raised when the user first drags the mouse cursor over the control during a drag-and-drop operation.

Notes

Dans les versions antérieures à .NET Framework 2.0.NET Framework 2.0, si vous placez un UserControl avec DragEnter et DragDrop événements sur un formulaire Windows et faites glisser quelque chose sur le UserControl au moment du design, le DropDrop et DropEnter sont des événements déclenché.In versions earlier than .NET Framework 2.0.NET Framework 2.0, if you put a UserControl with DragEnter and DragDrop events on a Windows Form and drag and drop something onto the UserControl at design time, the DropDrop and DropEnter events are raised. Toutefois, lorsque vous fermez et rouvrez la solution, le DragEnter et DragDrop événements ne sont pas déclenchés à nouveau.However, when you close and reopen the solution, the DragEnter and DragDrop events are not raised again.

Les lignes suivantes décrivent de quelle façon et à quel moment se déclenchent les événements liés aux opérations de glisser-déplacer.The following describes how and when events related to drag-and-drop operations are raised.

Le DoDragDrop méthode détermine le contrôle sous l’emplacement du curseur.The DoDragDrop method determines the control under the current cursor location. Elle vérifie ensuite si le contrôle est une cible de dépôt valide.It then checks to see if the control is a valid drop target.

Si le contrôle est une cible de dépôt valide, le GiveFeedback événement est déclenché avec l’effet de glisser-déplacer spécifié.If the control is a valid drop target, the GiveFeedback event is raised with the drag-and-drop effect specified. Pour obtenir la liste des effets de glisser-déposer, consultez l’énumération DragDropEffects.For a list of drag-and-drop effects, see the DragDropEffects enumeration.

Les modifications apportées à la position du curseur de la souris, à l'état du clavier et à l'état du bouton de la souris font l'objet d'un suivi.Changes in the mouse cursor position, keyboard state, and mouse button state are tracked.

  • Si l'utilisateur se déplace hors de la fenêtre, l'événement DragLeave est déclenché.If the user moves out of a window, the DragLeave event is raised.

  • Si la souris entre dans un autre contrôle, l'événement DragEnter du contrôle est déclenché.If the mouse enters another control, the DragEnter for that control is raised.

  • Si la souris se déplace uniquement dans les limites du même contrôle, l'événement DragOver est déclenché.If the mouse moves but stays within the same control, the DragOver event is raised.

S’il existe une modification de l’état de bouton de souris ou le clavier, la QueryContinueDrag événement est déclenché et détermine s’il faut continuer l’opération glisser, déposer les données ou annuler l’opération en fonction de la valeur de la Action propriété de l’événement QueryContinueDragEventArgs.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.

  • Si la valeur de DragAction est Continue, le DragOver événement est déclenché pour poursuivre l’opération et le GiveFeedback événement est déclenché avec le nouvel effet, pour rétroaction visuelle appropriée.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. Pour obtenir la liste des effets de dépôt valides, consultez l’énumération DragDropEffects.For a list of valid drop effects, see the DragDropEffects enumeration.

    Notes

    Le DragOver et GiveFeedback les événements sont associés afin que lorsque la souris se trouve sur la cible de déplacement, l’utilisateur reçoit les commentaires les plus actuels sur la position de la souris.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.

  • Si la valeur de DragAction est Drop, la valeur d’effet de déplacement est retournée à la source, afin de l’application source peut effectuer l’opération appropriée sur les données sources ; par exemple, couper les données si l’opération était un déplacement.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.

  • Si la valeur de DragAction est Cancel, le DragLeave événement est déclenché.If the value of DragAction is Cancel, the DragLeave event is raised.

    Notes

    Le X et Y propriétés de la DragEventArgs sont en coordonnées d’écran, pas les coordonnées clientes.The X and Y properties of the DragEventArgs are in screen coordinates, not client coordinates. La ligne de code Visual c# suivante convertit les propriétés à un client Point.The following line of Visual C# code converts the properties to a client Point.

    Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));  
    

Pour plus d'informations sur la gestion des événements, voir gestion et déclenchement d’événements.For more information about handling events, see Handling and Raising Events.

S’applique à

Voir aussi