0

我正在使用 AjaxControlToolkitTabContainer并动态设置TabPanel可见性。当活动选项卡被隐藏(动态)时,整个选项卡控件被隐藏,所以为了避免这种情况,我编写了这样的小方法(将第一个可见选项卡设置为活动选项卡)

private void SetActiveTab()
{
    if (tabControl1.Tabs[0].Visible)
    {
        tabControl1.ActiveTabIndex =0;
        return;
    }

    if (tabControl1.Tabs[1].Visible)
    {
        tabControl1.ActiveTabIndex = 1;
        return;
    }

    ...

}

但这对我来说感觉像是低效/丑陋的代码......,有没有更好的方法来做到这一点......?

4

1 回答 1

1

选择任何

for (int tabIndex = 0; tabIndex < TabContainer1.Tabs.Count; tabIndex++)
{
    if(TabContainer1.Tabs[tabIndex].Visible)
    {
        TabContainer1.ActiveTabIndex = tabIndex;
        break;
    }
}

foreach (TabPanel tab in TabContainer1.Tabs)
{
    if (tab.Visible)
    {
        TabContainer1.ActiveTab = tab;
        break;
    }
}

var firstVisibleTab = TabContainer1.Tabs.OfType<TabPanel>().FirstOrDefault(tab => tab.Visible);
if (firstVisibleTab != null)
{
    TabContainer1.ActiveTab = firstVisibleTab;
}

顺便说一句,对于此类问题,最好使用 Code Review 网站:Code Review

于 2012-10-16T04:35:50.820 回答