viernes, 22 de agosto de 2008

Drag and Drop

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:

  1. Drag/Drop dentro de una aplicación, seleccionar y mover objetos dentro de una misma aplicación
  2. Drag/Drop entre aplicaciones, seleccionar y mover objetos de una aplicación a aplicación

Propiedad DragMode

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.

Evento DragDrop

El evento DragDrop provee 3 parámetros:

  1. source, se refiere al control que es liberado
  2. X, regresa la ubicación X en la que el control es liberado
  3. Y, 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

Propiedad DragIcon

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: