每次碰到都要花几分钟推理, 特记录一下
bool labelMdown = false;
Point Old = new Point();
private void label1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button!=MouseButtons.Middle)
{
return;
}
labelMdown = true;
Old = e.Location;
}
private void label1_MouseMove(object sender, MouseEventArgs e)
{
if (!labelMdown)
{
return;
}
int x = Old.X - label1.Location.X;
int y = Old.Y - label1.Location.Y;
label1.Location = new Point(e.X - x, e.Y - y);
this.Cursor = Cursors.Hand;
}
private void label1_MouseUp(object sender, MouseEventArgs e)
{
labelMdown = false;
this.Cursor = Cursors.Default;
}