c#怎么实现鼠标对图片的拖拽,求代码
答案:3 悬赏:40 手机版
解决时间 2021-11-19 09:13
- 提问者网友:山高云阔
- 2021-11-18 15:55
c#怎么实现鼠标对图片的拖拽,求代码
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-11-18 16:11
这是我拖动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;
}
}
//是否正在拖拽
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;
}
}
全部回答
- 1楼网友:duile
- 2021-11-18 17:51
网页链接 源码下载,希望对你有用
- 2楼网友:举杯邀酒敬孤独
- 2021-11-18 17:40
~~~拖拽,首先你先搞清楚你是 要从哪里拖拽到哪里;
一,
如果只是你程序界面上的图片做移动,那么;
picturebox鼠标按下时记录鼠标与picturebox实际坐标,并用一个bool变量记录当前鼠标状态为mousedown;
然后在鼠标移动事件中拿当前鼠标实际坐标,与mouseDown时记录的坐标的偏差来加上picturebox原坐标;便是现在的坐标;
在鼠标抬起时,清除状态;
二,
如果是其他复杂层次的拖拽;那么需要用到windows的dragdrop;具体用法视你的实际需要而定;追问就是第一种,请问你有代码吗
一,
如果只是你程序界面上的图片做移动,那么;
picturebox鼠标按下时记录鼠标与picturebox实际坐标,并用一个bool变量记录当前鼠标状态为mousedown;
然后在鼠标移动事件中拿当前鼠标实际坐标,与mouseDown时记录的坐标的偏差来加上picturebox原坐标;便是现在的坐标;
在鼠标抬起时,清除状态;
二,
如果是其他复杂层次的拖拽;那么需要用到windows的dragdrop;具体用法视你的实际需要而定;追问就是第一种,请问你有代码吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯