日期:2014-05-18  浏览次数:21384 次

怎么实现按下鼠标左键并拖动界面时,界面会跟着移动
一个简单界面,在按下鼠标左键并拖动界面时,界面会跟着移动。请问编程怎么实现呢。由于刚接触C#界面编程,不是很懂,恳请各位高手指点。。。

------解决方案--------------------
这貌似jquery可以实现
------解决方案--------------------
这个很简单哦 楼主
在窗体的事件里添加
C# code
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            t = 1;
            x = e.Location.X;
            y = e.Location.Y;

        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if(t==1)
            {
                Location = new Point(Location.X + (e.Location.X - x), Location.Y + (e.Location.Y - y));
            }
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            t = 0;
        }

------解决方案--------------------
C# code

35.       private void pictureBox1_MouseDown(object sender, MouseEventArgs e) {  
36.           thisIsMove = true;  
37.           //当鼠标点下时 记录想当前的状态  
38.           sx = MousePosition.X;  
39.           sy = MousePosition.Y;  
40.           l = this.Left; t = this.Top;  
41.       }  
42.  
43.       private void pictureBox1_MouseMove(object sender, MouseEventArgs e) {  
44.           if (thisIsMove) {//如果为true则移动窗体  
45.               //当前鼠标的位置与点下的是鼠标坐标的差值加上原来窗体的坐标就是现在移动的位置  
46.               this.Left = MousePosition.X - sx + l;  
47.               this.Top = MousePosition.Y - sy + t;  
53.           }  
54.       }  
55.  
56.       private void pictureBox1_MouseUp(object sender, MouseEventArgs e) {  
57.           thisIsMove = false;  
58.       }

------解决方案--------------------
探讨

引用:
引用:

引用:

如果是针对windows的form,那么算是一个投机取巧的做法(虽然差一两行代码,但是问题不大)。可如果是picturebox等等,甚至是封闭曲线等等,这就不一样了。你拖动一个图形时,实际上应该拖着它从其它层后边穿越,而不能失去鼠标控制。

貌……