Tablelayoutpanel超出范围

时间:2015-01-27 08:42:20

标签: c#

我正在做一个动态按钮生成...生成按钮不是问题...但问题是当我找到这些按钮的索引...让我说我有一个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]);
}   

1 个答案:

答案 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]);
}