s yu Ответов: 1

Как установить свойства отдельной вкладки system.windows.forms.tabcontrol?


В моем приложении Windows Form я добавил систему.Окна.Формы.Объект TabControl (здесь он называется tabControlMain). Он содержит несколько вкладок. В файле Designer. cs 2 вкладки добавляются в tabControlMain.
this.tabControlMain.Controls.Add(this.tpMain);
     this.tabControlMain.Controls.Add(this.tpViewData);

Я хочу установить отдельную вкладку (например, tpViewData) .Включен, а также виден динамически. Однако на отдельной вкладке этого нет .Включенные и видимые свойства. Как решить эту проблему? Спасибо.

Что я уже пробовал:

Установите Систему.Окна.Формы.Свойства вкладку элемент управления TabControl человека

1 Ответов

Рейтинг:
9

OriginalGriff

TabPage не поддерживает Visible или Enabled: они наследуются, маскируются, чтобы вы не могли получить к ним доступ из Intellisense, и намеренно отключаются.
Вы можете получить к ним доступ программно, введя имена:

tabPage1.Visible = false;
tabPage2.Enabled = false;
И ваш код будет компилироваться.

Но они не будут иметь никакого эффекта.

Вы не можете отключить или скрыть вкладку - вы можете только удалить ее из коллекции TabPages родительского TabControl или добавить панель, которая заполняет страницу вкладки,и использовать ее свойство Enabled.


s yu

Грифф: Спасибо за ваш ответ. Используя ваш код, tab. Enable действительно показывает false при отладке. Однако если я нажму на вкладку, контейнер вкладки все равно будет отображаться. Можно ли избежать этого события (а именно не отображать вкладку отключено)?
Затем я попытался сделать это:
если (tpViewData.Включить == ложь)
тпмэйн.Сосредоточить();
Но он по-прежнему отображает tpViewData, а не tpMain. У вас есть какие-нибудь идеи, как решить эту проблему? Спасибо.

OriginalGriff

Читать Ц Я сказал:
- И ваш код будет компилироваться.

Но они не будут иметь никакого эффекта."

Свойства не работают, они намеренно отключены. Вы не можете отключить страницу вкладки, хотя вы можете отключить ее содержимое, поместив их все внутри панели и отключив панель. Но единственный способ полностью "скрыть" страницу вкладки - это удалить ее из TabControl.Коллекция вкладок, как я уже сказал 2 часа назад!

s yu

Вы правы. С помощью
это.tabControlMain.Контроля.Добавить(это.tpViewData);
и-или
это.tabControlMain.Контроля.Удалить(это.tpViewData);
Спасибо.