想设计一个页面布局,如3*3,2*2之类的.
各块之间的内容可以支持拖放操作,如我把(0, 0)格子内的内容拖到(0,1)格子内后,两边的内容能够互换.
请教一下有什么好的思路没?

解决方案 »

  1.   

    用tableLayoutPanel分割,然后每个格里边放一个panel,互换的时候只需要互换两个panel所在的格就可以
      

  2.   

    TableLayoutPanel控件 + DragEnter事件
      

  3.   

    我现在就是用tablelayoutpanel来做的,但用鼠标拖放的时候有点问题,不知道谁有这方面的示例,感激不尽
      

  4.   

       以前写的拖拽控件的,你参考一下吧
       bo是全局布尔变量 
        private void button1_MouseMove(object sender, MouseEventArgs e) 
            { 
                int Mx, My; 
                Mx = e.X ; 
                My = e.Y ; 
                if (bo) 
                { 
                    button1.Left +=(Mx-mx); 
                    button1.Top +=(My-my); 
                } 
            } 
            private void button1_MouseDown(object sender, MouseEventArgs e) 
            { 
                bo = true; 
                mx = e.X ; 
                my = e.Y ;         } 
            private void button1_MouseUp(object sender, MouseEventArgs e) 
            { 
                bo = !bo; 
            }
      

  5.   

    在MouseUp的时候判断鼠标是在哪个格子里,就把被拖拽的控件放到那个格子里,改变控件的父容器
      

  6.   

    TableLayoutPanel控件 + DragEnter事件