如何查找哪个标签页(TabControl)

时间:2012-05-10 06:53:13

标签: c# winforms tabcontrol

找到哪个标签的最简单方法是什么。我想点击tabpage2或其他标签页时显示一些数据。我是这样做的,但不是很好的解决方案:

private int findTabPage { get; set; }
    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (tabControl1.SelectedTab == tabPage1)
            findTabPage = 1;
        if (tabControl1.SelectedTab == tabPage2)
            findTabPage = 2;
    }

并显示数据:

 if (findTabPage == 1)
     { some code here }
 if (findTabPage == 2)
     { some code here }

有没有其他解决方案,例如这样?

4 个答案:

答案 0 :(得分:13)

使用

tabControl1.SelectedIndex;

这将为您提供选定的标签索引,该索引将从0开始,然后比标签总数少1 ...

像这样使用

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    switch(tabControl1.SelectedIndex)
    {
        case 0:
             { some code here }
             break;
        case 1:
             { some code here }
             break;
    }
}

答案 1 :(得分:4)

这是一种更好的方法。

private int CurrentTabPage { get; set; }
    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        CurrentTabPage = tabControl1.SelectedIndex;
    }

这样每次更改tabindex时,我们所需的CurrentTabPage都会自动更新。

答案 2 :(得分:3)

只需使用tabControl1.SelectedIndex

if (tabControl1.SelectedIndex == 0)
    { some code here }
if (tabControl1.SelectedIndex == 1)
    { some code here }

答案 3 :(得分:2)

如果您更喜欢使用字符串来标识所选 tabPage 而不是其索引:

int currentTab = tabControl1.SelectedIndex;
string tabText = tabControl1.TabPages[currentTab].Text;

这将提供您在选择 tabPage 时单击的文本。

int currentTab = tabControl1.SelectedIndex;
string tabName = tabControl1.TabPages[currentTab].Name;

这将为您提供 tabPage 的名称。

您可以通过编程方式或在对象属性中选择名称,必须使用不同的名称来标识每个 tabPage。 相反,文本字段不是,并且多个不同的选项卡可以具有相同的文本,您必须小心。