Как я могу отключить вкладку внутри TabControl? - PullRequest
70 голосов
/ 06 января 2009

Есть ли способ отключить вкладку в TabControl ?

Я использую C #.

Ответы [ 23 ]

0 голосов
/ 15 февраля 2014

Пользователь не может нажимать на вкладки для навигации, но он может использовать две кнопки ( Далее и Назад ). Пользователь не может перейти к следующему, если // условия не выполнены.

private int currentTab = 0;

private void frmOneTimeEntry_Load(object sender, EventArgs e)
{
    tabMenu.Selecting += new TabControlCancelEventHandler(tabMenu_Selecting);
}

private void tabMenu_Selecting(object sender, TabControlCancelEventArgs e)
{
    tabMenu.SelectTab(currentTab);
}

private void btnNextStep_Click(object sender, EventArgs e)
{
    switch(tabMenu.SelectedIndex)
    {
        case 0:
            //if conditions met GoTo
        case 2:
            //if conditions met GoTo
        case n:
            //if conditions met GoTo
    {
    CanLeaveTab:
    currentTab++;
    tabMenu.SelectTab(tabMenu.SelectedIndex + 1);
    if (tabMenu.SelectedIndex == 3)
        btnNextStep.Enabled = false;
    if (btnBackStep.Enabled == false)
        btnBackStep.Enabled = true;

    CannotLeaveTab:
        ;
}

private void btnBackStep_Click(object sender, EventArgs e)
{
    currentTab--;
    tabMenu.SelectTab(tabMenu.SelectedIndex - 1);
    if (tabMenu.SelectedIndex == 0)
        btnBackStep.Enabled = false;
    if (btnNextStep.Enabled == false)
        btnNextStep.Enabled = true;
}
0 голосов
/ 17 июня 2018

Я не смог найти подходящий ответ на вопрос. Похоже, что нет решения отключить конкретную вкладку. Что я сделал, так это передал конкретную вкладку переменной и в событии SelectedIndexChanged вернул ее обратно в SelectedIndex:

//variable for your specific tab 
int _TAB = 0;

//here you specify your tab that you want to expose
_TAB = 1;
tabHolder.SelectedIndex = _TAB;

private void tabHolder_SelectedIndexChanged(object sender, EventArgs e)
{
    if (_TAB != 0) tabHolder.SelectedIndex = _TAB;
}

Таким образом, вы фактически не отключаете вкладку, но при нажатии на другую вкладку она всегда возвращает вас к выбранной вкладке.

0 голосов
/ 06 января 2009

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

...