在C#中向TabControl选项卡添加按钮

5

我是一个窗体中的TabControl。我已经实用的添加了新的选项卡,就像这样:

for (int i = 1; i < numOfLanguages; i++)
{
     // add a tab for each language
     string tabTitle = split[i];
     TabPage newTab = new TabPage(tabTitle);
     languageTabs.TabPages.Add(newTab);
}

在循环中,我想为每个选项卡设置其他控件,主要是添加按钮。我看到了这段代码:

tabPage1.Controls.Add(new Button());

基于这个示例,我希望能做类似的事情:

languageTabs.SelectTab(split[i]).Add(new Button());

我知道这段代码不会起作用。一直在查看参数,但没有找到可以让我做这种事情的选项。

社区有什么建议吗?


SelectTab(split[i]) 返回 void,它不返回当前选定的选项卡。 - MBen
@MBen -- 我意识到这一点,因此我添加了“这段代码不起作用”。我在示例中使用了SelectTab,因为它与我的代码应该执行的名称非常相似。 - maffo
有没有完整的源代码的最终解决方案? - Kiquenet
2个回答

3

SelectTab方法将实际的TabControl移动到指定的选项卡,不会返回选项卡以供操作。


您可以按以下方式索引选项卡页面:

languageTabs.TabPages[2].Controls.Add(new Button());

如果您在创建 TabPage 时设置了 Name 属性,那么还可以通过键名查找各个选项卡:
for (int i = 1; i < numOfLanguages; i++)
{
     // add a tab for each language
     string tabTitle = split[i];
     TabPage newTab = new TabPage(tabTitle);
     newTab.Name = tabTitle;
     languageTabs.TabPages.Add(newTab);
}

...

languageTabs.TabPages[split[i]].Controls.Add(new Button());

(更多详细信息请参阅 MSDN)
任何一种方式都可以,取决于您方便的方式。

0
LINQ? < p > < code > languageTabs.TabPages.First(tab => tab.Title == split[i]).Add(new Button()); 如果您的TabControl没有特定名称的选项卡,则此方法可能不可靠(崩溃),因此您可能需要更可靠的方法:
if (languageTabs.TabPages.Exists(tab => tab.Title == split[i]))
{
    languageTabs.TabPages.First(tab => tab.Title == split[i]).Add(new Button());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接