在使用TabControl控件時,希望隱藏其中某個選項卡(即TabPage)。TabPage類明明提供了一個Hide方法,用在代碼中卻沒有任何效果,甚是奇怪。無奈之余,只好考慮另辟途徑。
方法一:
設置該TabPage的父容器為null 即可,如TabPage.Parent = null 。如需顯示該TabPage,設置其父容器為對應的TabControl即可。
方法二:
利用TabControl的TabPages屬性,它是TabPage對象的集合,調用集合的Remove(TabControl.TabPages.Remove(TabPage))和Add(TabControl.TabPages.Add(TabPage))方法同樣可解決該問題。參見下面一段完整的代碼。
Hashtable htPages = new Hashtable(); public void DeletePage(string strName) { foreach (TabPage tabPage in tabControl1.TabPages) { if (tabPage.Name == strName) { tabControl1.TabPages.Remove(tabPage); htPages.Add(strName, tabPage); break; } } } public void AddPage(string strName) { TabPage tabPage = (TabPage)htPages[strName]; if (tabPage != null) tabControl1.TabPages.Add(tabPage); }
參考鏈接: