[英]Inserting a Combobox Inside a groupbox that's inside a container
我在设计视图中创建了一个 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]);
/////////////////
}
}
你的代码应该是这样的:
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]);
/////////////////
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.