Select TabPage 由其 Label/Text

Select a TabPage by its Label/Text

我有以下代码创建带有文本的 TabPage tab1:

string tabTitle = "tab1";
TabPage createdtabpage = new TabPage(tabTitle);
tabControl1.TabPages.Add(createdtabpage);

我想使用我设置的字符串获取 TabPage,然后 select 它。也许是这样的:

 //this will select the tab that has a title of "tab1"
 this.tabControl1.SelectedTab = tabControl1.getTabByTitle(tabTitle);

有没有办法完成类似的事情?
感谢您的帮助。

如果您可以为 TabPage.Text 属性 和 TabPage.Name 属性 分配相同的值,以防分配的文本与名称 属性 兼容约束(就像文本是 "tab1" 时的情况一样,如问题所示),然后简单地 select TabPage 的名称:

string tabTitle = "tab1";
tabControl1.TabPages.Add(new TabPage(tabTitle));

// [...]

tabControl1.SelectedTab = tabControl1.TabPages[tabTitle];

如果文本不兼容(如"This is TabPage1"),那么您可以使用 LINQ 的 OfType() 到 select 具有以下内容的 TabPage指定的文本:

tabControl1.SelectedTab = tabControl1.TabPages.OfType<TabPage>()
    .FirstOrDefault(tp => tp.Text == tabTitle);

在这种情况下,如果未找到 TabPage,FirstOrDefault() 将 return null 并且 TabControl 将不会在 [=30] 中显示 selected =].