C#实现按钮拖拽效果

本文介绍了如何使用C#编程语言实现按钮的拖拽效果,包括按钮点击移动的代码示例,同时指出在鼠标移动速度过快时可能出现的问题,并建议使用特定的代码来优化这一问题。此外,还提及了C#的绘图功能。
摘要由CSDN通过智能技术生成

下面的代码实现按钮拖拽效果

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值