永发信息网

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

答案:3  悬赏:40  手机版
解决时间 2021-11-19 09:13
c#怎么实现鼠标对图片的拖拽,求代码
最佳答案
这是我拖动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;具体用法视你的实际需要而定;追问就是第一种,请问你有代码吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
日本西北方向临( )海
爸爸的英文单词中每个字母都是什么意思?
叙浦到辰溪有多少公里
6x除以三分之1=10分之一这道方程怎么解
门头梁两边出多少规范
江南布衣这个牌子的 衣服 到底怎么样?
错别字笑话
正泰new7l和new7d哪个好
财务管理的问题。 某股东持有甲公司的股票100
郎平为什么不要曾春雷去里约
在家里怎样保存姜才新鲜啊?
找一首歌,歌词只知道一点大概是:匆匆忙忙,
我鼻腔有小寰仲现天冷了呼气特不舒服怎么办
2018年中级工程师评定流程
现在摩托车上户都要买强制险和驾驶人员意外险
推荐资讯
求极道鲜师的完结同人文
二次函数配方法怎样求最值,有例子最后
一个比自己大十岁的女人要和我发生关系怎么办
建筑自身的表现形式有哪些
机械背光键盘键冒可以水洗吗,键冒
请从分子角度分析ptfe为什么具有耐高低温,耐
一加二不等三(打一字) 数字谜语及答案
长乐酒吧地址在什么地方,想过去办事,
计算机二级前几天刚现场确认过一次,但又有短
中国移动(马宁浩通特约代理点)地址在什么地方
两个分力互成120度,其大小都是10N,求两个分
7²+(x+6)²=10² 求解题全
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?