1. 实现方案一:可以通过MouseDown、MouseUp、MouseOver事件实现
如果涉及到click事件的话,且MouseDown事件中有判断是左键动作的话,可能会与MouseDown事件冲突,即click事件可能也会触发mouseDown事件。因此可改用MouseOver事件,在MouseOver事件中增加对左键动作的判断。
//鼠标按下时激活
privatevoid button1_MouseDown(objectsender,MouseEventArgs e)
{
if(e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.tmpx =e.X;
this.tmpy =e.Y; //记录鼠标按下时的位置
}
}
//鼠标移动时发生,控件位置随时变化
private void button1_MouseMove(objectsender,MouseEventArgse)
{
this.button1.Location= new
System.Drawing.Point(this.button1.Location.X+ e.X –
this.tmpx, this.button1.Location.Y+ e.Y - this.tmpy);
}
//鼠标松开时发生,控件位置确定(e.X , e.Y表示在屏幕上的位置)
private void button1_MouseUp(objectsender,MouseEventArgs e)
{