我在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());
我知道这段代码不会起作用。一直在查看参数并且看不到任何可以让我做这种事情的东西。
任何想法社区?
答案 0 :(得分: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());
(See MSDN了解更多)
无论哪个最方便。
答案 1 :(得分:0)
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());
}