如何在Winform中实现自己绘制得图进行拖动!
怎么实现自己用GDI+绘制得图形进行拖动,并且可以多个图进行重叠显示?谢谢大侠们!
------解决方案--------------------把画的图放到容器上 
 比如GroupBox或者PictureBox上 
 然后拖动容器控件   
 重叠显示,就是重新画一张图 
------解决方案--------------------GDI+我也用过一段时间,有一定的了解,以下是我的个人见解 
 你想拖动GDI+绘制的图形其实就是把你所绘制的图形位置不断的重载,在鼠标按下的时候记下鼠标的坐标,移动后松开鼠标也有个坐标,通过这两个坐标你就可以得到你所移动的图形的顶点.   
 关于重叠最好是调整上面图形的透明度,然后把图形画到你要移到的图形上
------解决方案--------------------要分别处理MouseDown,MouseMove,MouseUp事件。   
 在MouseDown的时候判断鼠标位置是否在图形区域内,MouseMove的时候不断刷新重绘,根据鼠标及时坐标重画新图形,擦除之前图形。MouseUp和MouseMove类似。   
 至于重叠,你可以把所有图形的GraphicPath加到一个List里面,按顺序画到屏幕上就可以了
------解决方案--------------------调用API获得颜色,然后判断坐标,如果是你画的图,就改变绘图参数,重新绘制一遍,你是要做绘图板吧,哪个学校的?
------解决方案--------------------把画的图放到容器上 
 比如GroupBox或者PictureBox上 
 然后拖动容器控件   
 重叠显示,就是重新画一张图   
 要分别处理MouseDown,MouseMove,MouseUp事件。
------解决方案--------------------要么用多个PictrueBox,要么像我说的调用一系列WIN API来实现
------解决方案--------------------private void Login_MouseDown(object sender, MouseEventArgs e) 
         //记录鼠标点击的初始位置 
         { 
             if (e.Button == MouseButtons.Left) 
             { 
                 //pSrc = new Point(); 
                 //pSrc.X = e.X; 
                 //pSrc.Y = e.Y; 
                 sx = e.X; 
                 sy = e.Y; 
             } 
         }   
         private void Login_MouseMove(object sender, MouseEventArgs e) 
         { 
             if (e.Button == MouseButtons.Left) 
             { 
                 Point pDest = PointToScreen(new Point(e.X, e.Y)); 
                 this.Location = new Point(pDest.X - sx, pDest.Y - sy);//pSrc.X, pDest.Y - pSrc.X); 
             } 
         }   
         protected int sx, sy;   
         private void Login_MouseUp(object sender, MouseEventArgs e) 
         { 
         }
------解决方案--------------------楼上的。。。 
 你的代码解决不了他的问题。。。
------解决方案--------------------code project 上有源代码。我现在也在研究这个问题。
------解决方案--------------------我做的图型控件以后也要实现这个功能,先帮你顶
------解决方案--------------------我QQ 378138668 加我先,以后一起研究啊
------解决方案--------------------你要记录下所有的操作,每次的操作都是一个对象,每个对象都有一个移动的方法. 
 每个对象在不同的层上