插入组合框在容器内的组框内

时间:2011-08-15 11:05:30

标签: c# combobox controls

我在设计视图中创建了一个flowlayout面板,我想在其中放置一个动态数量的groupbox,每个groupbox都有一个ComboBox。最后一行(在它上面和下面有一个斜线)是困扰我的那一行;我真的不知道它为什么不起作用。

PS:当我在设计视图中绘制组框时,我可以将组合框放在里面!

            List<GroupBox> GroupBoxes = new List<GroupBox>();
            List <ComboBox> Caja =new List<ComboBox>();
            for (int i = 0; i < Campos.Count; i++)
            {
                GroupBoxes.Add(new GroupBox());
                Caja.Add(new ComboBox());
            }
            for (int i = 0; i< Campos.Count; i++)
            {
                //Agregamos la caja...

                GroupBoxes[i].Location = new System.Drawing.Point(51, 21);
                GroupBoxes[i].Size = new System.Drawing.Size(203, 56);
                GroupBoxes[i].Text = "haha";
                GroupBoxes[i].Name ="GroupBox"+i.ToString();
                this.flowLayoutPanel1.Controls.Add(GroupBoxes[i]);


                Caja[i].Location = new System.Drawing.Point(51, 21);
                Caja[i].Name = "comboBox"+i.ToString();
                Caja[i].Size = new System.Drawing.Size(121, 21);
                Caja[i].DropDownStyle = ComboBoxStyle.DropDownList;

                /////////////////
                this.GroupBoxes[i].Controls.Add(Caja[i]);
                /////////////////
            }
        }

1 个答案:

答案 0 :(得分:1)

您的代码应该是这样的:

        List<GroupBox> GroupBoxes = new List<GroupBox>();
        List <ComboBox> Caja =new List<ComboBox>();
        for (int i = 0; i < Campos.Count; i++)
        {
            ComboBox cb = new ComboBox();
            cb.Location = new System.Drawing.Point(51, 21);
            cb.Name = "comboBox"+i.ToString();
            cb.Size = new System.Drawing.Size(121, 21);
            cb.DropDownStyle = ComboBoxStyle.DropDownList;
            Caja.Add(cb);
            GroupBox gb = new GroupBox();
            gb.Location = new System.Drawing.Point(51, 21);
            gb.Size = new System.Drawing.Size(203, 56);
            gb.Text = "haha";
            gb.Name ="GroupBox"+i.ToString();
            gb.Controls.Add(cb);
            GroupBoxes.Add(gb);
            this.flowLayoutPanel1.Controls.Add(gb);
        }
    }

或只是放置以下行

this.flowLayoutPanel1.Controls.Add(GroupBoxes[i]);

之后的

/////////////////
this.GroupBoxes[i].Controls.Add(Caja[i]);
/////////////////