¿Como mover un objeto?
Quiero hacer lo siguiente con VB.NET
Tengo un PictureBox dentro de un Panel. Normalmente la imagen del PictureBox será mayor que le Panel, así que lo que quiero hacer es poder mover el PictureBox por dentro del Panel.
Es decir, quiero que el usuario pueda "agarrar" la imagen y moverla según va moviendo el raton.
¿Como puedo hacerlo?
Gracias por adelantado.
Mikel
Tengo un PictureBox dentro de un Panel. Normalmente la imagen del PictureBox será mayor que le Panel, así que lo que quiero hacer es poder mover el PictureBox por dentro del Panel.
Es decir, quiero que el usuario pueda "agarrar" la imagen y moverla según va moviendo el raton.
¿Como puedo hacerlo?
Gracias por adelantado.
Mikel
Prueba si esto te sirve
Declara en un módulo:
Type POINTAPI
X As Long
Y As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Global inicio As POINTAPI
Global fin As POINTAPI
En el evento Mouse_Down del picture:
GetCursorPos inicio
En el evento Mouse_Up del picture:
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)
Espero que te ayude.Un saludo
Declara en un módulo:
Type POINTAPI
X As Long
Y As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Global inicio As POINTAPI
Global fin As POINTAPI
En el evento Mouse_Down del picture:
GetCursorPos inicio
En el evento Mouse_Up del picture:
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)
Espero que te ayude.Un saludo
Otra vez aqui.
Intentamos mejorarlo.
Elimina el evento Mouse_up del código anterior.
En el evento Mouse_Move del picture pon:
If Button <> 0 Then
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)
GetCursorPos inicio
End If
Dime algo.
Un saludo
Intentamos mejorarlo.
Elimina el evento Mouse_up del código anterior.
En el evento Mouse_Move del picture pon:
If Button <> 0 Then
GetCursorPos fin
Picture1.Left = Picture1.Left + (fin.X - inicio.X)
Picture1.Top = Picture1.Top + (fin.Y - inicio.Y)
GetCursorPos inicio
End If
Dime algo.
Un saludo
