События Клика На Вкладке
Я пытаюсь автоматически запускать события на основе страницы вкладки, которая нажата на элементе управления 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 ответа:
Похоже, что у вас его нет:
Есть и другие события, которые могут дать вам эту информацию: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(); }