在一个容器里,有n个panel控件,从上到下依次排列,要实现拖动一个panel拖动它的位置。比如原来12345,拖动3向后变成12435,这样的。拖动时显示该panel将要放置的位置(比如一条粗线)。再有就是拖动后怎么得到新的顺序(放到一个数组里)。谢谢。想了半天没有个头绪,n个panel闹得,呵呵。再加我也比较菜~

解决方案 »

  1.   

    把顺序数字等放到一个链表就可以了,list,然后根据这个顺序,重新排所有的panel....
      

  2.   

    (1)把顺序数字等放到一个链表就可以了,list,然后根据这个顺序,重新排所有的panel..
    (2)如何移动PANEL?
    MouseDown的时候设置1个FLAG,一个Point,MouseMove的时候 如果有FLAG,就让PANEL根据参数随着鼠标移动MouseUp的时候清除FLAG,同时查找PANEL所处的位置,更新链表
      

  3.   

    谢谢 csrwgs 啊,排序没问题了。就是拖动有点问题,将panel拖到label上的时候,不能触发label的mouseup,mousemove,drag系列。可是我试着把toolmenu拖上来就能触发,这是为什么?
    等这个解决了我再把代码贴上来,请高手们帮我看看,能不能优化,感觉自己写的有点怪(尽管目的达到了)呵呵