none
C# Winform Обратится к TabPage имея его имя в string RRS feed

  • Вопрос

  • Всем привет.

    Понадобилось тут убирать и показывать вкладки TabPage.

    Так как напрямую такого свойства нету, решил, что их можно просто убирать из контрола.

    Пример: Есть tabControl1, у него есть две вкладки tabPage1 и tabPage2

    Убираю первую вкладку.

    tabPage1.Parent = null;

    Добавляю обратно

    tabPage1.Parent = tabControl1;

    Возникла только проблемка. Так как вкладок планируется не две, а больше и пользователи их видят в зависимости от своих настроек, то у меня имена вкладок хранятся в словаре

    public static Dictionary<string, bool> TP = new Dictionary<string, bool>        {             //Имя вкладки, видимость            {"tabPage1", false},            {"tabPage2", true}        }; 

    т.е. на момент входа пользователя я хочу пробегать и скрывать/отображать вкладки, со скрытием проблем нет. Так как они находятся в контроле tabControl1.

    foreach(TabPage tp in item.Controls){                            if (TP[tp.Name] == false)                             {                                
            tp.Parent = null;                                              }
    }

    А вот как обратно отобразить не знаю. В контроле то их уже нету. Я знаю из словаря имя вкладки, но естественно это string

    и к TabPage не имеет никакого отношения. 

    Как имея имя вкладки обратится к ней?

    12 марта 2015 г. 11:11

Ответы

  • Сделал по другому, просто добавил ещё один tabControl, скрыл его и по нужде просто меняю владельца на него и обратно

    Скрыл из основного

    tabControl1.TabPage["name"].Parent = tabControl2;

    показал

    tabControl2.TabPage["name"].Parent = tabControl1;

    • Помечено в качестве ответа Mastekor 13 марта 2015 г. 7:08
    12 марта 2015 г. 11:25