c#中控件的复制不正确

时间:2015-11-15 11:34:39

标签: c# visual-studio-2008

为什么此代码无法正常运行:

class CTabPage : TabPage

CTabPage tp = new CTabPage();

for (int i=0; i < TabControl.TabPages[0].Controls.Count; i++)
     tp.Controls.Add(TabControlTabControl.TabPages[0].Controls[i]);

其中TabControl是现有的TabControl。

问题是,由于TabControl.TabPages[0].Controls.Count在循环中递减,所以只复制了一半的控件。

1 个答案:

答案 0 :(得分:0)

控件只能有一个父级。

通过向新TabPage.Controls集合“添加”控件,您将从旧集合中删除它们,这会导致Count的值在您遍历{{1}时递减}循环。

要解决您遇到的问题,您可以向后迭代:

for