因为foreach是通过迭代来工作的,当你删除了一个元素后,这个集合内部元素之间的关系就会被破坏,所以你得不到正确的结果
创新互联服务项目包括枣阳网站建设、枣阳网站制作、枣阳网页制作以及枣阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,枣阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到枣阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
你最好用for循环,或者先将要删除的控件放到一个数组中,foreach结束之后,统一删除,
到设计界面里面,在属性面板里面选择TopToolStripPanel,点一下左边标签栏(就是显示已打开文件的地方)的空白处,按delete
或者直接用记事本进入.design.vb文件删去和TopToolStripPanel有关的代码
再看看别人怎么说的。
题主是不是用的 TabControl1.Controls.Add(TabPage1) 或者 TabControl1.TabPages.Add(TabPage1) 这种方法添加的?
这样的话不但添加的第二个页面是空白的,第一个页面也会变成空白,因为对系统来说,存在了两个 TabPage1,而原先 TabPage1 里的控件用的是 Me.TabPage1.Controls.Add(Label1) 之类的方法添加进去的,有两个 TabPage1 系统就糊涂了不知道是该往哪一个里面加,所以就出现了两个都是空白的。
可以用的变通的方法实现。
比如:
用一个 Panel 承装 TabPage1 里的所有控件,在选中 TabPage2 时,执行
TabPage1.Controls.Remove(Panel1)
TabPage2.Controls.Add(Panel1)
先移除再添加,这样就不会出错了。
再比如:
最初设计 TabPage1 的时候就不要先添加进去,而是作为一个基类,有点儿说不明白,看代码吧: