Mesmo que eu esteja realmente apenas copie a colagem quando se trata de formulários do Windows
O código que você postou não fará nada por si só!
Para trabalhar, os eventos de Mousedown () e MouseMove () do controle devem ser conectados a esses métodos:
- Selecione o controle no formulário (PictureBox1).
- No painel Propriedades (canto inferior direito por padrão), clique no ícone "Lightning Bolt" para obter uma lista dos eventos para esse controle.
- Encontre o
MouseDown
entrada e altere o menu suspenso à direita parapictureBox1_MouseDown
. - Encontre o
MouseMove
entrada e altere o menu suspenso à direita parapictureBox1_MouseMove
.
Agora execute -o e arraste o PictureBox1.
EDIT: Aqui está como fazer o código funcionar para vários controles, conforme descrito no meu comentário abaixo.
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;
}