我正在做一个动态按钮生成...生成按钮不是问题...但问题是当我找到这些按钮的索引...让我说我有一个datacell(按钮数量)= 40 ....当我想在面板中显示它时...只能显示20个,超过21个以上都没有反弹......
下面是我查找索引的代码
for (int i = 0; i < datacell; i++)
{
ctrl[i] = tableLayoutPanel1.Controls[i];
btn[i] = (Button)ctrl[i];
panel1.Controls.Add(btn[i]);
}
答案 0 :(得分:1)
控件只能属于一个容器。因此,当您添加按钮时,panel1
会删除tableLayoutPanel1
形式的按钮。之后,当您向panel1
添加20个按钮到tableLayoutPanel1
已经包含另外20个按钮时,那么21就超出了界限。
有解决这样问题的技术:
for (int i = datacell - 1; i >= 0; i--)
{
ctrl[i] = tableLayoutPanel1.Controls[i];
btn[i] = (Button)ctrl[i];
panel1.Controls.Add(btn[i]);
}