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

我在Windows窗体中有一个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将实际的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 )

哪个最方便。

LINQ?

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