Buenos días!.

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.

intercambiarcartas

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


El próximo ejemplo "Trileros!".

Saludos