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】:原谅?你没有。 TabControl
是 TabPage
对象的集合。不过,您可以给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 选项卡的主要内容,如果未能解决你的问题,请参考以下文章