События Клика На Вкладке


Я пытаюсь автоматически запускать события на основе страницы вкладки, которая нажата на элементе управления tab.

В режиме конструктора моей формы, когда я нажимаю на вкладки, окно свойств говорит Tabs System.Окна.Формы.TabControl, какая бы вкладка не была выбрана. Однако я должен нажать на фактическую страницу,а не на вкладку, чтобы свойство изменилось на имя страниц, например, Tasklistpage System.Окна.Формы.Новые.

Мой tabcontrol называется Tabs, и я пытался протестировать его с помощью код, ниже которого предполагается выводить сообщение на основе опции tab.

 private void Tabs_SelectedIndexChanged(object sender, EventArgs e)

        {
            if (Tabs.SelectedTab == TaskListPage)
            {
                MessageBox.Show("TASK LIST PAGE");
            }
            else if (Tabs.SelectedTab == SchedulePage)
            {
                MessageBox.Show("SCHEDULE PAGE");
            }
        }

Когда я тестирую код выше, ничего не происходит.

Любая помощь в том, чтобы заставить события работать, когда нажата определенная вкладка, будет очень признательна!

Спасибо

2 11

2 ответа:

Похоже, что у вас его нет:

public Form1() {
  InitializeComponent();    
  Tabs.SelectedIndexChanged += new EventHandler(Tabs_SelectedIndexChanged);
}
Есть и другие события, которые могут дать вам эту информацию: Selected и Selecting.
void Tabs_Selected(object sender, TabControlEventArgs e) {
  if (e.TabPage == TaskListPage) {
    // etc
  }
}

Эта первая часть идет в

    public Form1()
    {
// This is near the top of the form 1 code in form1.cs

        InitializeComponent();
        tabControl1.SelectedIndexChanged += new EventHandler(TabControl1_SelectedIndexChanged);
    }

Затем внизу в вашем обычном коде вы просто говорите, какой элемент управления должен иметь фокус после нажатия на страницу вкладки. В моем текстовом процессоре я использовал форматированное текстовое поле и элементы управления вкладками для имитации ленты msword. Элемент управления rich text в моем случае не находится на странице вкладки, так как мои страницы вкладки покрывают, возможно, 1 или 2 дюйма в верхней части формы

private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {

        richTextBox1.Focus();
    }
Это то, что я называю своим текстовым процессором. Он здесь для всех, кто хотел бы им воспользоваться. Дневник Ларри