C#:按名称添加 TabControl 选项卡

Posted

技术标签:

【中文标题】C#:按名称添加 TabControl 选项卡【英文标题】:C#: Add TabControl tab by name 【发布时间】:2011-09-12 10:55:21 【问题描述】:

我有 TabControl 的表单。我可以通过以下方式添加标签:

TabControl.TabPages.Add(TabPage)

TabPage 是我拥有的标签页之一的名称。

我想做

TabControl.TabPages.Add("TabPage")

TabPage 是 String 对象。

我怎样才能做到这一点?

【问题讨论】:

为什么你不能这样做? msdn.microsoft.com/en-us/library/btz4twwd.aspx 因为它添加了空选项卡,而不是我拥有的带有控件的选项卡。 【参考方案1】:

原谅?你没有。 TabControlTabPage 对象的集合。不过,您可以给TabPage 起一个名称,以便引用它。

所以如果你想选择或删除一个标签页,你可以这样做(请原谅我的应用程序修改的讨厌的代码,我不得不记事本重构它以简化它):

private void ConfigureTabs()

    var config = GetConfig();

    foreach (TabPage tabPage in tabControl.TabPages)
    
        if (config.IsTabVisible(tabPage.Name) == false)
        
            tabControl.TabPages.Remove(tabPage);
        
    

    if (tabControl.TabPages.ContainsKey(config.DefaultTabName))
    
        tabControl.SelectTab(config.DefaultTabName);
    

【讨论】:

我会试着澄清一下——我有 TabControl,比如说三个 TabPage 对象,我将它们命名为 tabPage1、tabPage2、tabPage3。如果想将其中一个添加到我的 tabcontrol,我可以使用 TabControl1.TabPages.Add(tabPage1) 来做到这一点。我如何添加这个 tabPage1 对象,如果我在 String 变量中有它的名字(女巫是“tabPage1”),比如说名字?【参考方案2】:

步骤

1- 选择整个 Tab 控件 2- 在属性窗口(位于右侧)-> 标签页-> 单击 (...)。 3- 完成 1 和 2 后,您将看到所有选项卡...然后您可以更改文本上的名称..

希望对你有帮助.. 问候

【讨论】:

【参考方案3】:

转到TabControl的属性..然后转到TabPages..单击(集合)..现在您可以在TEXT字段中编辑选项卡的名称。

【讨论】:

【参考方案4】:

如果您要添加的选项卡不在任何控件层次结构中,则不可能。但是,如果选项卡位于表单中的其他位置,您可以编写 Extension Method 来查找您指定的 TabPage 并将其添加到 TabControl 的 TabCollection。像这样的:

public void AddEx(this TabCollection tabs, string name)

  var myTabPage = MyFindTabPageMethod(name);
  tabs.Add(myTabPage);    

因此,如果 TabPage 位于其他某个 TabCollection 中,并且您想将其“移动”到其他地方,那么上述方法应该可以工作。

现在你可以这样做了:

TabControl.TabPages.AddEx("TabPage");

【讨论】:

以上是关于C#:按名称添加 TabControl 选项卡的主要内容,如果未能解决你的问题,请参考以下文章

自定义 TabControl 以关闭单个选项卡

C# winform中TabControl怎么在每个选项卡的卡头添加不同的图标

如何通过标签页的名称关闭 tabcontrol 上的标签页

隐藏C#的TabControl控件的选项卡TabPage

带有添加新选项卡按钮 (+) 的 TabControl

如何在基于 mfc 对话框的应用程序中将选项卡添加到 tabcontrol 并在对话框中间显示选项卡