Как я могу отключить вкладку в TabControl?

Щелкните правой кнопкой мыши по проекту:> Настроить> Преобразовать в проект Maven

И затем вы можете обновить конфигурацию проекта

73
задан Peter Mortensen 12 June 2016 в 13:17
поделиться

8 ответов

класс Вкладки скрывает свойство Enabled. Это было намеренным, поскольку существует неловкая проблема проектирования UI с ним. Важный вопрос - то, что отключение страницы также не отключает вкладку. И если попытка работать вокруг этого путем отключения вкладки с событием Selecting тогда, это не работает, когда TabControl имеет только одну страницу.

, Если эти проблемы удобства использования не касаются Вас тогда, имеют в виду, что свойство все еще работает, оно просто скрыто от IntelliSense. Если FUD неудобен тогда, можно просто сделать это:

public static void EnableTab(TabPage page, bool enable) {
    foreach (Control ctl in page.Controls) ctl.Enabled = enable;
}
69
ответ дан Hans Passant 24 November 2019 в 12:05
поделиться

Я удалил вкладки в прошлом, чтобы препятствовать тому, чтобы пользователь нажал их. Это, вероятно, не лучшее решение хотя, потому что они, возможно, должны видеть, что вкладка существует.

0
ответ дан Aaron Smith 24 November 2019 в 12:05
поделиться

Я должен был обработать это некоторое время назад. Я удалил Вкладку из набора TabPages (я думаю вот именно), и добавил, что это въезжает задним ходом когда измененные условия. Но это было только в Winforms, где я мог иметь в наличии вкладку, пока мне не был нужен он снова.

1
ответ дан jcollum 24 November 2019 в 12:05
поделиться

Единственный путь состоит в том, чтобы поймать Selecting событие и препятствовать тому, чтобы вкладка была активирована.

5
ответ дан Martijn Laarman 24 November 2019 в 12:05
поделиться

Вы могли зарегистрировать событие "Selecting" и отменить навигацию на вкладку:

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
    if (e.TabPage == tabPage2)
        e.Cancel = true;
}

Другая идея состоит в том, чтобы поместить все средства управления на вкладку в управлении Панелью и отключить панель! Смайлик

Вы могли также удалить вкладку из tabControl1. Набор TabPages. Это скрыло бы вкладку.

Кредиты переходят в littleguru Канал 9 .

43
ответ дан Peter Mortensen 24 November 2019 в 12:05
поделиться

Бросьте свой TabPage к Управлению, затем установите свойство Enabled на ложь.

((Control)this.tabPage).Enabled = false;

Поэтому заголовок вкладки будет все еще включен, но его содержание будет отключено.

85
ответ дан TheCloudlessSky 24 November 2019 в 12:05
поделиться

Предположительно, вы хотите видеть вкладку в элементе управления вкладкой, но хотите, чтобы она была «отключена» (т. Е. Выделена серым цветом и недоступна для выбора). Для этого нет встроенной поддержки, но вы можете переопределить механизм рисования, чтобы получить желаемый эффект.

Пример того, как это сделать, представлен здесь .

Магия заключается в этот фрагмент из представленного источника и в методе DisableTab_DrawItem:

this.tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
this.tabControl1.DrawItem += new DrawItemEventHandler( DisableTab_DrawItem );
13
ответ дан 24 November 2019 в 12:05
поделиться
MyTabControl.SelectedTab.Enabled = false;
-2
ответ дан 24 November 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: