Dragging, acción de mantener presionado un botón (down) del mouse.
Dropping, acción de liberar un botón (up) del mouse.
Existen 2 tipos de drag y drop:
- Drag/Drop dentro de una aplicación, seleccionar y mover objetos dentro de una misma aplicación
- Drag/Drop entre aplicaciones, seleccionar y mover objetos de una aplicación a aplicación
La propiedad DragMode
puede establecerse en tiempo de diseño o de ejecución si se da el valor vbAutomatic
a está propiedad el usuario puede mover el control en cualquier momento, Visual Basic despliega un recuadro del control cuando este comienza a moverse.
duke.DragMode = vbAutomatic
Cuando se establece esta propiedad en modo automático, el control no recibe eventos del mouse como el evento Click
.
También es posible establecer esta propiedad en modo manual dandole el valor vbManual
que es el valor por default de la propiedad.
El siguiente código muestra como se indica iniciar el drag (vbBeginDrag
) de un control:
Private Sub nombrePictureBox_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
nombrePictureBox.Drag vbBeginDrag
End Sub
El siguiente código muestra como se indica finalizar el drag (vbEndDrag
) de un control:
Private Sub nombrePictureBox_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
nombrePictureBox.Drag vbEndDrag
End Sub
Cuando el usuario libera el botón del mouse mientras mueve un objeto el drag para, pero el control no mueve de manera automática el objeto a la nueva posición, ya que es necesario escribir el código para el movimiento del control.
Establecer el valor de la propiedad DragMode
o invocar el método Drag
solamente habilita un control para ser movido, es necesario determinar que podría pasarle al control cuando se termine de mover.
Antes de escribir el código para mover un control, primero es necesario identificar la fuente (source
) que es el control que comienza a ser movido por el usuario y el destino (target
) que es la forma o control que puede recibir el control que es movido.
El evento DragDrop
provee 3 parámetros:
source
, se refiere al control que es liberadoX
, regresa la ubicación X en la que el control es liberadoY
, regresa la ubicación Y en la que el control es liberado
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End Sub
Por default Visual Basic despliega un contorno del control fuente cuando un usuario mueve un control, es posible cambiar esta imagen a través de la propiedad DragIcon
del control fuente:
nombrePictureBox.DragIcon = LoadPicture("nombreImagen.ico")
0 comentarios:
Publicar un comentario