La Web del Programador: Comunidad de Programadores
 
    Pregunta:  49843 - ARRASTRAR Y SOLTAR UN OBJETO
Autor:  juan sanchez
necesito saber que códigos o instrucciones debo utilizar para que un objeto se quede en el lugar donde yo lo mueva

  Respuesta:  Carlos Piña
Hola. La solución a esto la obtuve en una semana de investigación, probando códigos. Es muy eficiente. El código es el siguiente:

'Variables públicas a nivel de formulario:

Dim Mover as Boolean, P1 as Single, P2 as Single

'En el código del objeto que deseas mover debes colocar estas líneas:
'Tomaré como ejemplo un PictureBox.

Private Sub Picture1_MouseDown(Button as Integer, Shift as Integer, X as Single, Y as Single)
Mover = True: P1 = X: P2 = Y
End Sub

Private Sub Picture1_MouseMove(Button as Integer, Shift as Integer, X as Single, Y as Single)
If Mover Then Picture1.Move Picture1.Left + X - P1, Picture1.Top + Y - P2
End Sub

Private Sub Picture1_MouseUp(Button as Integer, Shift as Integer, X as Single, Y as Single)
Mover = False
End Sub

Un consejo que te doy es que no uses los eventos DragDrop ni DragOver, esos funcionan usando propiedades del objeto a arrastrar y es más confuso. Yo no los uso, pero pueden ser una opción también.
Coloca un PictureBox en un formulario y pega este código en el módulo de formulario y ejecuta el programa. Espero que te sirva de mucho como a mí.