0

私はAjaxControlToolkitを使用しており、可視性TabContainerを動的に設定し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;
}

ところで、そのような質問には、コードレビューサイトをよりよく使用してください:コードレビュー

于 2012-10-16T04:35:50.820 に答える