c#怎么实现鼠标对图片的拖拽,求代码
3个回答
推荐于2017-05-22
展开全部
这是我拖动Button的,你可以改成图片的:
//是否正在拖拽
bool isDrag = false;
//鼠标按下坐标(control控件的相对坐标)
Point mouseDownPoint = Point.Empty;
//将被拖动的控件
private Control control;
private void btnMouse_MouseDown(object sender, MouseEventArgs e)
{
isDrag = true;
control = btnMouse;
if (e.Button == MouseButtons.Left)
{
mouseDownPoint = btnMouse.Location;
}
}
private void btnMouse_MouseMove(object sender, MouseEventArgs e)
{
if (isDrag)
{
Point mousePos = new Point(control.Location.X, control.Location.Y);
mousePos.Offset(e.X, e.Y);
mousePos.X -= this.control.Width / 2;
mousePos.Y -= this.control.Height / 2;
control.Location = mousePos;
}
}
private void btnMouse_MouseUp(object sender, MouseEventArgs e)
{
if (isDrag)
{
isDrag = false;
}
}
展开全部
~~~拖拽,首先你先搞清楚你是 要从哪里拖拽到哪里;
一,
如果只是你程序界面上的图片做移动,那么;
picturebox鼠标按下时记录鼠标与picturebox实际坐标,并用一个bool变量记录当前鼠标状态为mousedown;
然后在鼠标移动事件中拿当前鼠标实际坐标,与mouseDown时记录的坐标的偏差来加上picturebox原坐标;便是现在的坐标;
在鼠标抬起时,清除状态;
二,
如果是其他复杂层次的拖拽;那么需要用到windows的dragdrop;具体用法视你的实际需要而定;
一,
如果只是你程序界面上的图片做移动,那么;
picturebox鼠标按下时记录鼠标与picturebox实际坐标,并用一个bool变量记录当前鼠标状态为mousedown;
然后在鼠标移动事件中拿当前鼠标实际坐标,与mouseDown时记录的坐标的偏差来加上picturebox原坐标;便是现在的坐标;
在鼠标抬起时,清除状态;
二,
如果是其他复杂层次的拖拽;那么需要用到windows的dragdrop;具体用法视你的实际需要而定;
追问
就是第一种,请问你有代码吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网页链接 源码下载,希望对你有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询