Проблемы привязки контейнеров .NET TabControl - PullRequest
0 голосов
/ 24 февраля 2011

У меня странная проблема с c # Winforms (не пробовал VB.NET по общему признанию), в результате чего у меня есть TabControl на странице и 4 TabPages.

У меня есть некоторая логика аутентификации, чтобы показать / скрыть этиTabPages при отображении формы после ее сворачивания.Эта «скрывающая» логика по существу удалит вкладки и повторно вставит их, когда форма аутентифицируется.

Итак, во-первых, приложение свернуто.Я восстановил его, не прошел проверку подлинности, и поэтому вкладки были удалены.Я снова сворачиваю приложение, восстанавливаю окно, прохожу аутентификацию и вкладки вставляются.Однако элементы управления на страницах, которые привязаны к противоположным сторонам (таким образом, слева, справа и сверху, снизу, чтобы они могли растягиваться), похоже, сломаны.Верхняя / левая позиции в порядке, но противоположная позиция, кажется, растянулась на видимой странице!

Я предполагаю, что все это связано с удалением и добавлением страниц, но кто-нибудь видел это раньшезнаете почему это происходит ??(и что более важно знать обойти):)

Просто чтобы заметить, мой код для скрытия / отображения вкладок использует функцию следующим образом: -

private void TabControlPageVisible(TabPage page, Boolean show)
    {
        if (show)
        {
            if (!tabControlMain.TabPages.Contains(page))
            {
                tabControlMain.TabPages.Insert(0, page);
                page.ResumeLayout();
            }
        }
        else
        {
            if (tabControlMain.TabPages.Contains(page))
            {
                page.SuspendLayout();
                tabControlMain.TabPages.Remove(page);
            }
        }
    }

Ура!:)

1 Ответ

0 голосов
/ 24 февраля 2011

Вы используете метод макета на каждой странице или просто размещаете элементы управления? (хлопотное) решение - сохранить положение каждого элемента управления. гораздо лучше было бы использовать макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...