La idea del ejemplo es poder intercambiar la imagen origen con la imagen destino de cualquiera de los PictureBox
y no limitarse solo a dos únicos lugares para hacer la operación de arrastre y soltar.
Este es el código fuente:
Public Sub Form_Open()
'Cada una de los picturebox tiene asignado en su tag el nombre de cada una de las cartas
Me.Title = "Intercambia la imagen destino y su origen"
Me.Center
End
Public Sub CajaImagenes_MouseDrag()
If Mouse.Left And Last.Picture <> Null Then
Drag.Icon = Last.Picture
Last.Drag(Last.tag)
Endif
End
Public Sub CajaImagenes_Drop()
Dim tmp As String
Dim pboxtemp As PictureBox
If Drag.type = Drag.Text Then
'Se asigna el tag del picturebox fuente a la variable tmp
tmp = Drag.Source.tag
'Se asigna la dirección de memoria que contiene picturebox fuente al pboxtemp ( alias )
pboxtemp = Drag.Source
'Se le asigna a la propiedad tag del picturebox fuente el tag donde se haya hecho la operación drop
Drag.Source.tag = Last.tag
'Se le asigna al picturebox fuente la nueva imagen
pboxtemp.Picture = Picture[Last.tag]
'Se le asigna un nuevo tag al ultimo picturebox donde ha hecho la operación drop
Last.tag = tmp
'Se le asigna al picturebox donde se ha hecho drop una nueva imagen
Last.Picture = Picture[tmp]
Endif
End
Public Sub btnSalir_Click()
Me.Close
End
'Cada una de los picturebox tiene asignado en su tag el nombre de cada una de las cartas
Me.Title = "Intercambia la imagen destino y su origen"
Me.Center
End
Public Sub CajaImagenes_MouseDrag()
If Mouse.Left And Last.Picture <> Null Then
Drag.Icon = Last.Picture
Last.Drag(Last.tag)
Endif
End
Public Sub CajaImagenes_Drop()
Dim tmp As String
Dim pboxtemp As PictureBox
If Drag.type = Drag.Text Then
'Se asigna el tag del picturebox fuente a la variable tmp
tmp = Drag.Source.tag
'Se asigna la dirección de memoria que contiene picturebox fuente al pboxtemp ( alias )
pboxtemp = Drag.Source
'Se le asigna a la propiedad tag del picturebox fuente el tag donde se haya hecho la operación drop
Drag.Source.tag = Last.tag
'Se le asigna al picturebox fuente la nueva imagen
pboxtemp.Picture = Picture[Last.tag]
'Se le asigna un nuevo tag al ultimo picturebox donde ha hecho la operación drop
Last.tag = tmp
'Se le asigna al picturebox donde se ha hecho drop una nueva imagen
Last.Picture = Picture[tmp]
Endif
End
Public Sub btnSalir_Click()
Me.Close
End
El próximo ejemplo "Trileros!".
Saludos
EjemplosDragDropSource.tar.gz | ||
Descripción: | Intercambiar la imagen contenido en el Picturebox con cualquiera del resto de los PictureBox | Descargar |
Nombre del archivo: | EjemplosDragDropSource.tar.gz | |
Tamaño: | 40.61 KB | |
Descargado: | 46 veces |
EjemplosDragDropSource.tar.gz | ||
Descripción: | Intercambiar la imagen contenido en el Picturebox con cualquiera del resto de los PictureBox | Descargar |
Nombre del archivo: | EjemplosDragDropSource.tar.gz | |
Tamaño: | 40.61 KB | |
Descargado: | 46 veces |
EjemplosDragDropSource.tar.gz | ||
Descripción: | Intercambiar la imagen contenido en el Picturebox con cualquiera del resto de los PictureBox | Descargar |
Nombre del archivo: | EjemplosDragDropSource.tar.gz | |
Tamaño: | 40.61 KB | |
Descargado: | 46 veces |