按标签/文本选择 TabPage

问题描述

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

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

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

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

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

解决方法

如果您可以为 TabPage.Text 属性和 TabPage.Name 属性分配相同的值,以防分配的 Text 与 Name 属性约束兼容(就像 Text 为 {{1} },如问题所示),然后只需按名称选择 TabPage:

"tab1"

如果 Text 不兼容(如 string tabTitle = "tab1"; tabControl1.TabPages.Add(new TabPage(tabTitle)); // [...] tabControl1.SelectedTab = tabControl1.TabPages[tabTitle]; ),那么您可以使用 LINQ 的 OfType() 选择具有指定 Text 的 TabPage:

"This is TabPage1"

在这种情况下,如果没有找到 TabPage,FirstOrDefault() 将返回 tabControl1.SelectedTab = tabControl1.TabPages.OfType<TabPage>() .FirstOrDefault(tp => tp.Text == tabTitle); ,并且 TabControl 将不会在 UI 中显示选择的 TabPage。