下面的代码实现按钮拖拽效果
bool startMove = false;
int clickX = 0; //记录上次点击的鼠标位置
int clickY = 0;
// 下面两个函数实现按钮拖拽效果
private void button2_MouseDown(object sender, MouseEventArgs e)
{ //鼠标按下事件
clickX = e.X;
clickY = e.Y;
startMove = true;
}
private void button2_MouseUp(object sender, MouseEventArgs e)
{ //鼠标松开事件
startMove = false;
drawNS();
}
// 鼠标在按钮上移动,那么按钮是否跟着移动, 如果鼠标移动太快了,将超出范围
private void button2_MouseMove(object sender, MouseEventArgs e)
{
if (startMove)
{
// e.X 是正负数,表示移动的方向
int x = button2.Location.X + e.X -clickX; //还要减去上次鼠标点击的位置
int y = e.Y + button2.Location.Y - clickY;
button2.Location = new Point(x, y);
}
}
下面的代码实现按钮点击移动效果,有个bug: 鼠标移动太快,按钮跟不上移动速度,建议改用上面的代码
bool startMove = false;
// 鼠标点击按钮,开始移动,再点击按钮,关闭移动
private void button2_MouseClick(object sender, MouseEventArgs e)
{
startMove = !startMove; // 取反, fals