как сделать вкладку TabControl невидимой - PullRequest
2 голосов
/ 22 октября 2010

В C # с использованием VS2005 у меня есть Winforms TabControl с 7 вкладками, но я хочу, чтобы последняя вкладка была видимой, только если установлен определенный параметр конфигурации.

Как заставить TabControl показывать только первые шесть вкладок?Другими словами, как сделать седьмую вкладку невидимой?

Ответы [ 3 ]

1 голос
/ 22 октября 2010
private void HideTab(object sender, EventArgs e)
{
    this.tabControl1.TabPages.Remove(this.tabPage2);
}
private void ShowTab(object sender, EventArgs e)
{
    this.tabControl1.TabPages.Add(this.tabPage2);
}

this.tabPage2 - ваша седьмая вкладка, независимо от того, какое имя вы ей дадите.

0 голосов
/ 06 апреля 2013

вы можете реализовать свойство

public bool TabVisible
{
    get 
    {
        return tabControl1.Contains(tabPage2);
    }
    set
    { 
        if(value == TabVisible) return;
        if(value)
            tabControl1.TabPages.Add(tabPage2);
        else
            tabControl1.TabPages.Remove(tabPage2);
    }
}

вы также должны перезаписать свою функцию удаления,

вы можете переместить функцию Dispose из сгенерированного дизайнером кода в ваш собственный код,дизайнер замечает это.Вы видите, что функция components.Dispose(); больше не может перейти к закладке для утилизации, поэтому вам нужно утилизировать ее вручную, если она не была утилизирована.в противном случае, особенно если вы много раз открываете окно, у вас не хватает ручек окна

0 голосов
/ 04 декабря 2012

Нет, скрыть вкладку в tabcontrol невозможно. Если вы добавляете вкладки во время выполнения, не добавляйте 7-ю вкладку, если условие не выполняется.

Если вы сделали это во время разработки, удалите вкладку, если условие не удалось.

yourTabControl.TabPages.Remove(tabPageName);
...