首先我已经实现了: 当托拽一个按钮的时候它随时都跟着鼠标动。
大概思路是 让这个按钮响应dragover事件,sender和source都是他自己了当然。
然后在该事件中设置按钮的位置和鼠标位置同步就ok了。一个缺点是用力过大的托拽会使按钮跟不上鼠标,这时可以让按钮所在的panel也响应dragover事件,同样设置按钮和鼠标同步就好了。难题是这样的:我的panel里实际上有多个按钮,它们之间都有连线的。这些线存放在一个数组里面。在form1(默认主窗口)的onpaint事件中绘制这些线。同时,当我拖拽按钮的时候,让这些线跟着更新。也就是在上面方法中的dragover事件中调用重绘的方法。
重绘是成功了,但是画面上会留下很多痕迹。
问题就是:我该调用哪个重绘方法呢?repaint,invalidate,update,refresh统统都试过了。望高手指点!!!