c#怎么实现鼠标对图片的拖拽,求代码

 我来答
匿名用户
推荐于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;
            }
        }
lc316546079
2014-12-09 · TA获得超过273个赞
知道小有建树答主
回答量:682
采纳率:0%
帮助的人:330万
展开全部
~~~拖拽,首先你先搞清楚你是 要从哪里拖拽到哪里;
一,
如果只是你程序界面上的图片做移动,那么;
picturebox鼠标按下时记录鼠标与picturebox实际坐标,并用一个bool变量记录当前鼠标状态为mousedown;
然后在鼠标移动事件中拿当前鼠标实际坐标,与mouseDown时记录的坐标的偏差来加上picturebox原坐标;便是现在的坐标;
在鼠标抬起时,清除状态;
二,
如果是其他复杂层次的拖拽;那么需要用到windows的dragdrop;具体用法视你的实际需要而定;
追问
就是第一种,请问你有代码吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuweiqiang922
2018-07-27
知道答主
回答量:12
采纳率:0%
帮助的人:6.4万
展开全部

网页链接       源码下载,希望对你有用

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式