El evento DragEnter se provoca la primera vez que el usuario arrastra el cursor del mouse sobre el control durante una operación de arrastrar y colocar.
Nota: |
|---|
| En las versiones anteriores a Microsoft .NET Framework versión 2.0, si pone un UserControl con eventos DragEnter y DragDrop en un formulario Windows Forms, y arrastra y coloca algo en el UserControl en tiempo de diseño, se producen los eventos DropDrop y DropEnter. Sin embargo, cuando cierra y vuelve a abrir la solución, los eventos DragEnter y DragDrop no se producen de nuevo. |
A continuación, se describe cómo y cuándo se provocan eventos relacionados con operaciones de arrastrar y colocar.
El método DoDragDrop determina el control en la posición actual del cursor. A continuación, comprueba si el control es un destino (colocar) válido.
Si el control es un destino válido, se provoca el evento GiveFeedback con el efecto de arrastrar y colocar especificado. Para obtener una lista de efectos de arrastrar y colocar, vea la enumeración DragDropEffects.
Se realiza el seguimiento de la posición del cursor del mouse, del estado del teclado y del estado de los botones del mouse.
-
Si el usuario desplaza el mouse fuera de una ventana, se provoca el evento DragLeave.
-
Si el mouse entra en otro control, se provoca el evento DragEnter para ese control.
-
Si se mueve el mouse dentro del mismo control, se provoca el evento DragOver.
Si hay un cambio en el estado del teclado o de los botones del mouse, se produce el evento QueryContinueDrag y se determina si continúa la operación de arrastrar o colocar datos, o si se cancela la operación en función del valor de la propiedad Action de QueryContinueDragEventArgs del evento.
-
Si el valor de DragAction es Continue, se produce el evento DragOver para continuar con la operación y, con el nuevo efecto, se produce el evento GiveFeedback de forma que se pueda establecer la información visual apropiada. Para obtener una lista de efectos de colocar válidos, vea la enumeración DragDropEffects.
Nota: |
|---|
| Los eventos DragOver y GiveFeedback están emparejados de forma que cuando el mouse se desplace por el destino (colocar), el usuario reciba la información más actualizada sobre la posición del mouse. |
-
Si el valor de DragAction es Drop, el valor del efecto de colocar se devuelve al origen para que la aplicación de origen pueda realizar la operación apropiada en los datos de origen; por ejemplo, cortar los datos si la operación es un movimiento.
-
Si el valor de DragAction es Cancel, se produce el evento DragLeave.
Nota: |
|---|
| Las propiedades X y Y de DragEventArgs son coordenadas de pantalla, no son coordenadas de cliente En la siguiente línea de código de Visual C# se convierten las propiedades en un Point cliente. |
Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));
Para obtener más información sobre la forma de controlar eventos, vea Utilizar eventos.