从当前选项卡的tabpages中删除选项卡

时间:2012-03-08 20:05:56

标签: c# winforms devexpress

我的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);

6 个答案:

答案 0 :(得分:2)

我通常采用的方法是添加一个关闭当前所选标签的按钮。使用按钮上的click事件运行代码:

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

您可能想要在关闭后选择要关注的选项卡,此示例将选择控制器中的最后一个选项卡:

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

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

如果您想要花哨,可以通过简单地创建一个已删除的TabPages队列来创建一个用于恢复已关闭标签的按钮。单击按钮使选项卡出列,然后重新添加到tabcontroller。

答案 1 :(得分:1)

将“x”按钮放在那里,为其分配一个事件,然后在点击事件中调用如下内容:

tbRooms.TabPages.Remove(tbRooms.SelectedTab);

这样的事情应该有用。

答案 2 :(得分:1)

如果您为标签命名,您也可以通过键(即:名称)

删除它们
myTabPage.name = "WhateverTab";

MyTabControl.TabPages.RemoveByKey("WhateverTab");

或索引

MyTabControl.TabPages.RemoveAt(2);

删除控件中的第三个标签

答案 3 :(得分:1)

改为使用tabpage dispose方法,它与静态和动态标签页完美配合。

答案 4 :(得分:1)

以下选项很容易隐藏所需的标签,而不是删除特定选项的页面和控件。一旦隐藏,您将无法选择,因此问题得到解决。

this.viewRibbonPage1.Visible = false;

答案 5 :(得分: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;
                }
            }     
        }   
    }