先加一個代碼
public void SetXtraTabPageVisible(DevExpress.XtraTab.XtraTabControl xtraTabControl, bool iIsVisible, string strTabPageName) { // xtraTabControl1.Visible = true; foreach (DevExpress.XtraTab.XtraTabPage tabPage in xtraTabControl.TabPages) { if (tabPage.Name == strTabPageName) { tabPage.PageVisible = iIsVisible; } else { tabPage.PageVisible = !iIsVisible; } } }
這個能實現切換, 結果把另一個頁面給徹底隱藏了,當前顯示頁到了隱藏頁的位置, 隱藏的頁的頁頭 也沒得了位置,跟我想顯示隱藏頁的頁頭不符合.
改成這個方式問題解決
public void SetXtraTabPageVisible(DevExpress.XtraTab.XtraTabControl xtraTabControl, bool iIsVisible, string strTabPageName) { // xtraTabControl1.Visible = true; foreach (DevExpress.XtraTab.XtraTabPage tabPage in xtraTabControl.TabPages) { if (tabPage.Name == strTabPageName) { xtraTabControl.SelectedTabPage = tabPage;//顯示該頁 return; // tabPage.PageVisible = iIsVisible; } //else //{ // tabPage.PageVisible = !iIsVisible; //} } }
雙擊listview增加相應的tabpage,禁止重復添加:
private void listView_index_MouseDoubleClick(object sender, MouseEventArgs e) { if (listView_index.SelectedItems.Count > 0) { ListViewItem lvi = listView_index.SelectedItems[0];//得到選中的項 string name = lvi.Text; //判斷是否已創建過 foreach (XtraTabPage page in xtraTabControl.TabPages) { if (page.Text == name) { xtraTabControl.SelectedTabPage = page;//顯示該頁 return; } } //增加tabpage XtraTabPage xpage = new XtraTabPage(); xpage.Name = name; xpage.Text = name; xpage.Controls.Add(ListView_Tec);//添加要增加的控件 xtraTabControl.TabPages.Add(xpage); xtraTabControl.SelectedTabPage = xpage;//顯示該頁 } }