方法1.使用tab.parent=null,来隐藏,使用tab.parent=tabControl1来显示。
此方法完全可以胜任需求。但是也会存在一个bug,就是tabcontrol父控件中的tab至少要存在一个,
即如果tabcontrol.TabPages.count==0时,tabcontrol为null可能会报错。
所以有这种问题的解决办法如下代码:
//先添加一个临时的TabPage
TabPage tpTemp = new TabPage();
tabControl2.TabPages.Add(tpTemp);
//操作显示隐藏的代码
//......
//.....
tabControl2.TabPages.Remove(tpTemp);//最后删除即可
此方法可以保证里面的控件数据不丢失。
缺点:不保证里面的控件数据。
this.tabControl1.TabPages.Remove(this.tabPage2);
this.tabControl1.TabPages.Add(this.tabPage2);
this.tabControl1.SelectedTab = this.tabPage2;//置前
如果根据treenode属性的不同,而增加,可以考虑,先删除所有,再按顺序添加所需。