C # TabControl Выбранное событие, кажется, не работает - PullRequest
10 голосов
/ 31 декабря 2011

Я пытаюсь получить доступ к обработчику событий для выбора вкладки, в основном у меня есть 3 вкладки внутри tabControl1.Я хочу иметь возможность манипулировать тем, что отображается в списке, основываясь на том, какая вкладка выбрана в данный момент при выборе новой вкладки.Это не работает, каждый раз, когда выбрана вкладка, она не отображает окно сообщения (когда эта строка не закомментирована)

private void tabControl1_Selected(Object sender, EventArgs e)
{
    //MessageBox.Show(tabControl1.SelectedIndex.ToString());3

    if (tabControl1.SelectedIndex == 0)
    {
        //do something
    }
}

Ответы [ 3 ]

9 голосов
/ 31 декабря 2011

Это не правильное назначение. Ваш второй параметр неверен.

Попробуйте это:

private void tabControl1_Selected(object sender, TabControlEventArgs e) {
  if (e.TabPage.Name == tabPage1.Name)
    MessageBox.Show("First Tab!");
}

И убедитесь, что он правильно подключен (кажется, что вы не обработали событие):

public Form1() {
  InitializeComponent();

  tabControl1.Selected += new TabControlEventHandler(tabControl1_Selected);
}
4 голосов
/ 31 декабря 2011

Описание

Select не правильное событие. Вы должны использовать SelectedIndexChanged.

SelectedIndexChanged Происходит при изменении свойства SelectedIndex.

Пример

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex == 0)
    {
        //do something
    }
}

Дополнительная информация

3 голосов
/ 20 декабря 2013

есть более простой способ сделать это.для выбранной вкладки есть событие

Ввести событие (в свойствах самой вкладки1 нет свойств элемента управления вкладкой

private void tabPage1_Enter(object sender, EventArgs e)
{
    MessageBox.Show("helllllllllllo");
}
...