一个 panel   容器.N个 checkbox   ..如何动态添加到  panel 里面..
我用呢   
CheckBox[] boxs = new CheckBox[htmls.Length];
foreach (string tag in tags)
{
        CheckBox box = new CheckBox();
        box.Text = tag;
}
this.panel1.Controls.AddRange(boxs);可是无显示....难道要一个个计算  box.Location吗?

解决方案 »

  1.   


    这个不是 隐藏能解决的...
    我这个是为以后扩展 而做的....从外部 xml 文件 读取需要 添加那些 checkbox...免得每次改源文件
    我现在用 x,y ++ 一个算的...不过我觉得这样有些麻烦...不知道有没有更简便的方法.
    就像 html 里面...添加控件  不用算坐标.不知道 有没有这样简便的方法
      

  2.   

    对 tableLayoutPanel 不是很熟悉,能否给个列子.
      

  3.   

    CheckBox[] boxs = new CheckBox[htmls.Length]; 
    foreach (string tag in tags) 

            CheckBox box = new CheckBox(); 
            box.Text = tag; 

    this.panel1.Controls.AddRange(boxs); 红色部分里面有东西吗?
    有的话 就是坐标问题了 但是 至少能 显示一个
      

  4.   

    private void Form1_Load(object sender, EventArgs e)
            {
                string[] tags = new string[] {"11","22","33","44" };
                CheckBox[] boxs = new CheckBox[4];
                for (int i = 0; i < tags.Length;i++ )
                {
                    boxs[i] = new CheckBox();
                    boxs[i].Text = tags[i];
                    if (i > 0)
                    {
                        boxs[i].Top = boxs[i - 1].Top + boxs[i - 1].Height + 10;
                    }
                }
                this.panel1.Controls.AddRange(boxs); 
            }
    你有两个错误
    1、你的boxs中没有checkbox
    2、你没有控制位置显示,就是控件的位置,可是使用top,或者setbound来设置
    相对位置或者绝对位置