步骤:
1、在MouseDown事件中记录鼠标按下的Point,并置位按下的flag
2、在MouseMove事件中,将当前Point减去步骤1的Point
3、刷新(this.Validate())
public partial class FormMove : Form
{
public FormMove()
{
InitializeComponent();
button1.MouseMove += Button1_MouseMove;
button1.MouseUp += Button1_MouseUp;
button1.MouseDown += Button1_MouseDown;
}
bool down = false; Point down_pt;
private void Button1_MouseDown(object sender, MouseEventArgs e)
{
down = true; down_pt = e.Location;
}
private void Button1_MouseUp(object sender, MouseEventArgs e)
{
down = false;
}
private void Button1_MouseMove(object sender, MouseEventArgs e)
{
if (down)
{
button1.Left = button1.Location.X + (e.Location.X - down_pt.X);
button1.Top = button1.Location.Y + (e.Location.Y - down_pt.Y);
this.Validate();
}
}
}