¿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
