a pesar de que realmente solo estoy copiar pegado cuando se trata de formularios de Windows
¡El código que publicaste en realidad no hará nada por sí mismo!
Para trabajar, los eventos MouseDown () y MouseMove () del control deben conectarse a esos métodos:
- Seleccione el control en el formulario (PictureBox1).
- En el panel Propiedades (abajo a la derecha de forma predeterminada), haga clic en el icono "Lightning Bolt" para obtener una lista de los eventos para ese control.
- Encuentra el
MouseDown
ingresar y cambiar el menú desplegable a la derecha apictureBox1_MouseDown
. - Encuentra el
MouseMove
ingresar y cambiar el menú desplegable a la derecha apictureBox1_MouseMove
.
Ahora ejecuta y arrastre el PictureBox1.
Editar: Aquí se muestra cómo hacer que el código funcione para múltiples controles, como se describe en mi comentario a continuación.
bool isDragged = false;
Point ptOffset;
private void button1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDragged = true;
Button btn = (Button)sender;
ptOffset = new Point(btn.Location.X - Cursor.Position.X, btn.Location.Y - Cursor.Position.Y);
}
else
{
isDragged = false;
}
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (isDragged)
{
Point newPoint = Cursor.Position;
newPoint.Offset(ptOffset);
Button btn = (Button)sender;
btn.Location = newPoint;
}
}
private void button1_MouseUp(object sender, MouseEventArgs e)
{
isDragged = false;
}