我正在尝试动态创建包含标签和文本框的面板列表,并将这些面板放入更大的面板中。
我的问题是只有第一个子面板被添加到父面板。 我尝试将面板以及此addrange方法直接添加到控件中。
我也知道与此问题有关的另一个问题,但是它已经有6年历史了,该解决方案对我不起作用。
Panel pnl由包含已在表单上的标签和文本框的Panel填充。然后将该面板从控件中删除,并保留pnl
编辑说明:
该代码将循环多次,但是当到达panel1.Controls.AddRange(controls);
时,无论数组控件的长度如何,panel1.controls的总数为1。
Panel pnl;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Control[] controls = new Control[8];
for (int i = 0; i < int.Parse(ddlPlayers.SelectedItem.ToString()); i++)
{
pnl.Name = "pnl " + i.ToString();
if (i!= 0)
pnl.Location = new Point(pnl.Location.X, controls[i - 1].Location.Y + Height);
pnl.Show();
controls[i] = pnl;
}
panel1.Controls.AddRange(controls);
}
答案 0 :(得分:0)
问题是我没有声明一个新的面板,而是使用了相同的控件。我认为将控件放入数组中意味着它们会有所不同,但是我错了。
答案 1 :(得分:-1)
选中此行---> int.Parse(ddlPlayers.SelectedItem.ToString())