2012-10-16 41 views
0

我使用AjaxControlToolkit TabContainer并动态设置TabPanel可见性。当活动标签被隐藏(动态)整个选项卡控件是隐藏的,所以为了避免这样的(设置第一个可见标签作为活动标签)这个我已经写了小法通过可见性动态设置TabContainer Active选项卡

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

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

    ... 

} 

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

回答

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

BTW这样quetions更好的利用代码审查网站:Code Review

+0

非常感谢你... – Nalaka526

+0

这不是在FireFox工作:( –

相关问题