/* 删除TabPages 上的控件 */ for (int i=0;i<roleTabControl.Controls.Count;i++)
{
this.roleTabControl.Controls.RemoveAt(i);
}
/* 删除 TabControl 上的控件 */
for (int i=0;i<roleTabControl.TabPages.Count;i++)
{
roleTabControl.TabPages[i].Select();
roleTabControl.TabPages.RemoveAt(i);
}当 tabpage多于4个的时候,好像删除不干净。我的tabpage是动态添加的。点击某个功能按钮时,需要删除 tabControl 上的所有控件,但是好像删除不干净,希望那位好心人指点一下迷津。
{
this.roleTabControl.Controls.RemoveAt(i);
}
/* 删除 TabControl 上的控件 */
for (int i=0;i<roleTabControl.TabPages.Count;i++)
{
roleTabControl.TabPages[i].Select();
roleTabControl.TabPages.RemoveAt(i);
}当 tabpage多于4个的时候,好像删除不干净。我的tabpage是动态添加的。点击某个功能按钮时,需要删除 tabControl 上的所有控件,但是好像删除不干净,希望那位好心人指点一下迷津。
如果是tabpage中,那么你的第一个循环就不对了。
{
roleTabControl.TabPages[i].Select();
roleTabControl.TabPages.RemoveAt(i);
}在循环里删除,每删除一个元素,这个集合的Count也发生改变。
roleTabControl.TabPages.Count 在变化!将导致你这段程序数组越界。
言之有理
/* 删除TabPages 上的控件 */for (int i=roleTabControl.Controls.Count - 1; i >= 0; --i)
{
this.roleTabControl.Controls.RemoveAt(i);
}