你好...我在设计window窗体时我想往一个panel中动态的插入自定义控件.怎么让它一行插入10个现在我的问题插入的控件都叠在一块了..我该怎么控制呀.

解决方案 »

  1.   

    panel.Controls.Add(ctrl)之前先定位:ctrl.Location = new Point(left, top)其中left和top你要自己管理
      

  2.   

    楼上的可行,或是直接用dock属性
      

  3.   

    无法用dock,因为楼主说要“一行10个”,dock的话就只能一行一个了除非用.NET 2.0的FlowLayoutPanel,直接加,也不用设Location了
      

  4.   

    我的数据控制组件就是在panel控件里自动生成输入框, 要点:1. 生成一个控件前先要获得其x坐标,y坐标, 一般来说 x坐标=前一控件的x坐标 + 前一控件的宽度 + 两控件间的间距2. 在1的基础上, 你可能要考虑换行的问题, 即若1中 (x坐标 + 该控件的宽度)>panel的宽度 + 偏移值, 则换行, 加偏移值的意思是, 你允许控件超过panel一定的量3. 若没换行, 坐标y=前一个控件的坐标y; 否则y = 前一个坐标y + 前一个控件高度 + 行间距4. 可以定义两个变量来记录1,3中 前一个控件的 x,y值.______________________________________________________5.步骤1-4主要还是考虑控件高度差不多的情况下, 如果控件高度不等, 则换行后将出问题, 比如控件区域可能重复, 这时建议不要参考前一个控件的x,y值, 而是定义变量来记录目前x的最大值, 目前y的最大值, 在此我就不详述了,呵呵菜鸟拙见, 还是希望能对楼主有用.
      

  5.   

    自定义空间?是不是UserControl?如是的可以使用LoadControl来动态加载,然后Panel.controls.add()