Как программно выбрать вкладку в .NET CF TabControl?

С помощью .NET Framework 2.0/3.5 TabControl я могу программно выбрать вкладку с помощью свойства SelectedTab, как показано в приведенном ниже коде:

//toggles between tabPage1 and tabPage2
private void button1_Click(object sender, EventArgs e)
{
    if (tabControl1.SelectedTab == tabPage1)
        tabControl1.SelectedTab = tabPage2;
    else
        tabControl1.SelectedTab = tabPage1;
}

TabControl Compact Framework .NET не имеет свойства SelectedTab, как его аналог .NET Framework. Итак, как мне выбрать вкладку программно?


person raven    schedule 08.05.2009    source источник


Ответы (5)


TabControl.SelectedIndex

person Cheeso    schedule 09.05.2009
comment
Я обнаружил, что при выборе TabControl он отображается неправильно. Кажется, что после выбора TabControl полезно обновить его, поэтому, когда TabControl называется TabForm и имеет несколько вкладок, это может быть: `Me.TabForm.SelectedIndex = 0 Me.TabPg0.Refresh 'Где TabPg0 - это имя вкладки с индексом 0` - person Neil Dunlop; 09.02.2017
comment
Что сработало для меня, так это установить IsSelected для новейшего TabItem, а затем использовать UpdateLayout() для TabControl:((TabItem)tabControl.Items[tabControl.Items.Count - 1]).IsSelected = true; tabControlCode.UpdateLayout(); - person Christian Larsson; 15.11.2020

Я запрограммировал этот код. При нажатии на tabPage1 программа закроется:

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
    {
        if (tabControl1.SelectedTab == tabPage1)
        {
            MessageBox.Show("Logout!");
            Application.Exit();
        }
    }
person rafał    schedule 12.11.2010

в .Net 4 можно использовать

if (tabControl1.Controls[5] == tabControl1.SelectedTab)
                MessageBox.Show("Tab 5 Is Selected");

OR

if ( tabpage5 == tabControl1.SelectedTab)
         MessageBox.Show("Tab 5 Is Selected");
person ali    schedule 10.12.2014
comment
Этот вопрос был не о .NET 4; речь шла о .NET CF. - person Andrew Barber; 11.12.2014

Я обнаружил, что при выборе TabControl он отображается неправильно. Кажется, что после выбора TabControl полезно обновить его. Итак, если TabControl называется TabForm и имеет несколько вкладок, это может быть:

 Me.TabForm.SelectedIndex = 0
 Me.TabPg0.Refresh            'Where TabPg0 is the name of the Tab at Index 0
person Neil Dunlop    schedule 09.02.2017

Код WPF, попробуйте следующее:

if (tabControl1.SelectedValue == tabPage1)
    tabControl1.SelectedValue = tabPage2;
else
    tabControl1.SelectedValue = tabPage1;
person Mark Kadlec    schedule 10.07.2009
comment
WPF и среда Compact несовместимы, не так ли...? (Или я что-то пропустил?) - person peSHIr; 10.07.2009
comment
Плюс, это именно то, о чем говорится в вопросе, не работает: требовалась рабочая альтернатива. - person peSHIr; 10.07.2009
comment
Извините, я пропустил оператор Compact, но я считаю, что SelectedValue будет работать в компактной среде, в нем отсутствует SelectedTab. - person Mark Kadlec; 15.07.2009