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 =].
我有以下代码创建带有文本的 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 =].