TabControl без вкладок (QStackWidget в c #) - PullRequest
0 голосов
/ 28 мая 2010

Я пишу приложение, графический интерфейс которого меняется в зависимости от нескольких условий. Я реализовал это в Qt4 и внутренне использовал QStackWidget (по сути, это серия элементов управления, каждый раз виден только один)

В настоящее время я использую TabControl - каковы мои альтернативы в C #?

EDIT:

Я написал приложение Qt4, которое использовало QStackWidget. Сейчас я переписываю то же самое приложение на C #. Нет общего кода, это другое приложение.

Ответы [ 2 ]

0 голосов
/ 28 мая 2014

Если вы используете WinForms (c #), вы можете создать свой собственный элемент управления, унаследованный от TabControl, и добавить это:

public partial class TablessControl : TabControl
    {
        protected override void WndProc(ref Message m)
        {
            // Hide tabs in RunTime mode
            if (m.Msg == 0x1328 && !DesignMode)
            {
                m.Result = (IntPtr)1;
            }
            // Hide tabs in DesignMode
            else if (m.Msg == 0x1328 && DesignMode)
            {
                m.Result = (IntPtr)1;
            }
            else
            {
                base.WndProc(ref m);
            }
        }
    }
0 голосов
/ 29 мая 2010

Мне не известно о встроенном элементе управления, который работает как QStackWidget, но вы могли бы написать класс, который наследует Panel, сохраняет дочерние элементы управления во внутреннем списке и отслеживает «текущий» элемент управления. Добавьте удобные методы, такие как NextPage, PreviousPage, SetPage и т. Д., Которые обеспечивают отображение нужного дочернего элемента управления и скрытие остальных.

...