Hice un programa que arrastra un PictureBox sobre un Panel
En general funciona correctamente pero no parece responder de manera continua.
Cuando arrastro dentro del Panel hay veces que se pone como si no dejase soltar en ese lugar y otras si de manera un poco aleatoria.
Si lo suelto la imagen la coloca en ese lugar pero el evento Drop del panel no devuelve la información correcta como si no lo hubiese hecho.
Ejemplo:
Código:
Public Sub Panel1_Drop()
Print "Drag Tag: " & Drag.Source.Tag
End
Eso no siempre imprime el Tag, como si no reconociese el Drop sobre el Panel. Sucede cuando se pone en modo que no permite el Drop dentro del Panel. Insisto, la imagen la coloca en el lugar de todos modos pero no se ejecuta el evento Drop.
Hice un cambio y el problema esta al mover el PictureBox dentro de una grilla predefinida. Aparentemente hay logares donde queda el mouse fuera del objeto
Lo que hago es:
Código:
Public Sub Panel1_DragMove()
Drag.Source.X = Int((Round((Drag.X + Panel1.X) / Grid_Size)) * Grid_Size)
Drag.Source.Y = Int((Round((Drag.Y + Panel1.Y) / Grid_Size)) * Grid_Size)
Drag.Source.Raise
Drag.Show(Drag.Source)
End