如何找到当前处于哪个选项卡页面(TabControl)

9

最简单的方法是找到当前所在的选项卡。当我点击选项卡页2或其他选项卡时,想展示一些数据。我已经这样实现了,但这不是一个好的解决方案:

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个回答

16

使用

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;
    }
}

在修改之前和这个解决方案对我来说都是可以接受的,谢谢回复。 - JanOlMajti

4
这是一种更好的方法。
private int CurrentTabPage { get; set; }
    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        CurrentTabPage = tabControl1.SelectedIndex;
    }

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


4
如果您更喜欢获取用于标识所选选项卡的字符串,而不是其索引:
int currentTab = tabControl1.SelectedIndex;
string tabText = tabControl1.TabPages[currentTab].Text;

那将会给选中选项卡时所点击的文本。
int currentTab = tabControl1.SelectedIndex;
string tabName = tabControl1.TabPages[currentTab].Name;

这将给你TabPage的名称。

您可以在编程时或在对象属性中选择名称,必须有一个不同的名称以识别每个TabPage。 相反,文本字段不是强制的,多个不同的选项卡可以具有相同的文本,您必须小心处理此情况。


3

只需使用 tabControl1.SelectedIndex

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接