从当前选项卡的选项卡页面中删除选项卡

本文关键字:选项 删除 | 更新日期: 2023-09-27 18:27:21

我的主窗体中有一个选项卡控件,我也添加了用户控件。我希望能够从集合内部删除选项卡。也许在角落里放一个小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);

从当前选项卡的选项卡页面中删除选项卡

我通常会添加一个按钮来关闭当前选择的选项卡。使用按钮上的点击事件来运行代码:

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

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

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

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

如果你想变得有趣,你可以创建一个按钮来恢复关闭的选项卡,只需制作一个删除的选项卡页面队列。取消按钮上的选项卡的队列,单击并重新添加到您的选项卡控制器中。

把"x"按钮放在那里,给它分配一个事件,然后在点击事件中调用这样的东西:

tbRooms.TabPages.Remove(tbRooms.SelectedTab);

这样的东西应该行得通。

如果您命名选项卡,也可以通过键(即:name)删除它们

myTabPage.name = "WhateverTab";
MyTabControl.TabPages.RemoveByKey("WhateverTab");

或通过索引

MyTabControl.TabPages.RemoveAt(2);

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

使用tabpage dispose方法,该方法可以很好地处理静态和动态选项卡页。

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

this.viewRibbonPage1.Visible=false;

我现在遇到了同样的问题,并通过使用mouse_click事件解决了它。当用户右键单击选项卡时,它将被删除。这是我在上更改鼠标控制选项卡的选择选项卡的参考

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;
                }
            }     
        }   
    }