Anche se sto davvero solo copiare incollando quando si tratta di moduli di Windows
Il codice che hai pubblicato non farà davvero nulla da solo!
Per lavorare, gli eventi MouseDown () e MouseMove () del controllo devono essere cablati su quei metodi:
- Seleziona il controllo sul modulo (PictureBox1).
- Nel riquadro delle proprietà (in basso a destra per impostazione predefinita), fai clic sull'icona "Lightning Bolt" per ottenere un elenco degli eventi per quel controllo.
- Trovare la
MouseDown
ingresso e modifica il discesa a destra di esso apictureBox1_MouseDown
. - Trovare la
MouseMove
ingresso e modifica il discesa a destra di esso apictureBox1_MouseMove
.
Ora eseguilo e trascina PictureBox1.
EDIT: ecco come far funzionare il codice per più controlli, come indicato nel mio commento qui sotto.
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;
}