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