Principales respuestas
PixtureBox mover imagen con el mouse

Pregunta
-
Tengo un form donde he colocado un panel y le he habilitado el autoscroll al panel
luego al panel le agrego un picturebox con propiedad sizemode = AutoSize
Cuando inicio el form me inica el picturebox con scroll y funciona bien
lo que necesito es poder el curso sobre la imagen hacer click y mover la imagen
he utilizado varios códigos pero la imagen se me va hacia abajos adjunto el código para surevisión y mejora.
Gracias.
Public Partial Class Form1
Inherits Form
Private x As Integer = 0
Private y As Integer = 0
Public Sub New()
InitializeComponent()
End Sub
Private Sub button1_MouseDown(sender As Object, e As MouseEventArgs)
x = e.X
y = e.Y
End Sub
Private Sub button1_MouseMove(sender As Object, e As MouseEventArgs)
If e.Button = MouseButtons.Left Then
button1.Left = (button1.Left + e.X) - x
button1.Top = (button1.Top + e.Y) - y
End If
End Sub
End Class
Conocuica
Respuestas
-
hola conocuica
veo que utilizas los eventos mousemove y mouseDown de un boton??? no deberia ser del pictureBox?
creo que el codigo seria mas bien asi:
public partial class Form1 : Form { private bool btnDown; private int offsetX; private int offsetY; public Form1() { InitializeComponent(); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { // el boton izquierdo esta pulsado if (e.Button == MouseButtons.Left) { btnDown = true; offsetX = e.X; offsetY = e.Y; } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (btnDown) { // mover el pictureBox con el raton pictureBox1.Left += e.X - offsetX; pictureBox1.Top += e.Y - offsetY; } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { // el boton izquierdo se libera if (e.Button == MouseButtons.Left) { btnDown = false; } } }
si te funciona marca como respuesta, y que tengas suerte!
oops sorry !! creo que usas Visual Basic.. usa http://converter.telerik.com/ o http://www.developerfusion.com/tools/convert/csharp-to-vb/ para convertir codigo de c# a VB.
Todas las respuestas
-
hola conocuica
veo que utilizas los eventos mousemove y mouseDown de un boton??? no deberia ser del pictureBox?
creo que el codigo seria mas bien asi:
public partial class Form1 : Form { private bool btnDown; private int offsetX; private int offsetY; public Form1() { InitializeComponent(); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { // el boton izquierdo esta pulsado if (e.Button == MouseButtons.Left) { btnDown = true; offsetX = e.X; offsetY = e.Y; } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (btnDown) { // mover el pictureBox con el raton pictureBox1.Left += e.X - offsetX; pictureBox1.Top += e.Y - offsetY; } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { // el boton izquierdo se libera if (e.Button == MouseButtons.Left) { btnDown = false; } } }
si te funciona marca como respuesta, y que tengas suerte!
oops sorry !! creo que usas Visual Basic.. usa http://converter.telerik.com/ o http://www.developerfusion.com/tools/convert/csharp-to-vb/ para convertir codigo de c# a VB. -