2012-03-08 117 views
0

我从我的mainform中添加了用户控件的tabcontrol。我希望能够从本身内的集合中删除选项卡。也许在角落里放一点x。你觉得我会怎么做呢?从当前选项卡的标签中删除选项卡

这是我添加的东西到TabPage的控制。

DevExpress.XtraTab.XtraTabPage tabPage = new DevExpress.XtraTab.XtraTabPage() { Text = room.Name, Tag = roomView }; 

roomView.ParentTab = tabPage; 
roomView.Dock = DockStyle.Fill; 
roomView.Settings = Settings; 

tabPage.Controls.Add(roomView); 
tbRooms.TabPages.Add(tabPage); 

回答

1

把“X”按钮在那里,分配一个事件,然后在点击事件调用是这样的:

tbRooms.TabPages.Remove(tbRooms.SelectedTab); 

类似的东西应该工作。

1

我通常会这样做的方式是添加一个按钮,关闭当前选中的选项卡。使用click事件上的按钮来运行代码:

this.tbRooms.TabPages.RemoveAt(this.tabcontroller.SelectedIndex); 

你可能想选择结束后,将重点放在哪个选项,这个例子将选择在控制器中的最后一个标签:

this.tbRooms.SelectedIndex = this.tbRooms.TabCount-1; 

我不确定如何在实际的选项卡控制器上添加X按钮,可能相当复杂。

如果您想要看起来很花哨,您可以创建一个按钮,通过简单地创建一个已删除的TabPages队列来恢复已关闭的选项卡。将按钮上的选项卡出列并单击并重新添加到您的选项卡控制器。

1

如果你的名字你的标签,你也可以通过键将其删除(即:名称)

myTabPage.name = "WhateverTab"; 

MyTabControl.TabPages.RemoveByKey("WhateverTab"); 

或指数

MyTabControl.TabPages.RemoveAt(2); 

删除该控件中的第三个选项卡

1

而是使用tabpage dispose方法,它可以很好地处理静态以及动态标签页。

1

以下选项将非常容易隐藏需要的选项卡,而不是删除特定选项的页面和控件。一旦隐藏,你将无法选择,所以问题得到解决。

this.viewRibbonPage1.Visible = false;

1

我目前遇到同样的问题,并通过使用mouse_click事件解决了这个问题。当用户右键单击该选项卡时,它将被删除。 这是我的参考Change SelectedTab of TabControl on MouseOver

private void tabControl1_MouseClick(object sender, MouseEventArgs e) 
    {    
     if (e.Button == System.Windows.Forms.MouseButtons.Right) 
     { 
      Rectangle mouseRect = new Rectangle(e.X, e.Y, 1, 1); 
      for (int i = 0; i < tabControl1.TabCount; i++) 
      { 
       if (tabControl1.GetTabRect(i).IntersectsWith(mouseRect)) 
       { 
        tabControl1.TabPages.RemoveAt(i); 
        break; 
       } 
      }  
     } 
    } 
相关问题