请问用什么方法做比较合适?

解决方案 »

  1.   

    1.把所有控件放在一个Panel
    2.获取鼠标移动的的相对值,对所有控件重新赋值
      

  2.   

    遍历以所要移动的控件为基准,遍历取得其他所有控件对它的相对位置(Top,Left),移动后,重新赋值
      

  3.   

    还有个前提,所有控件的移动都在那一个控件的 OnMouseMove 里实现。
      

  4.   

    在OnMouseDown里记住鼠标移动之前的位置,并且设置开始移动标记;
    在OnMouseMove里设置控件的移动后的位置(当前鼠标X,Y相对于移动之前的偏移量);
    在OnMouseup中设置停止移动;
      

  5.   

    可以参考Delphi中全选控件移动的过程吧?
      

  6.   

    仔细想想这个也不难吧,某个控件无论怎样移动,总是可以分成水平移动和左右移动吧,然后每个控件都变化Left,Top不就可以了吗!