我正在尝试根据选项卡控件上单击的标签页自动触发事件。
在我的表单的设计模式中,当我单击选项卡时,属性框显示Tabs System.Windows.Forms.TabControl选择了哪个选项卡。但是,我必须单击实际页面,而不是单击属性的选项卡以更改为页面名称,例如TaskListPage System.Windows.Forms.TabPage。
我的tabcontrol被称为Tabs,我试图使用下面的代码测试它,该代码应该根据选项卡选项显示消息。
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");
}
}
当我测试上面的代码时,没有任何事情发生。
在点击特定标签时让事件有效的任何帮助都将非常感谢!
三江源
答案 0 :(得分:17)
听起来你没有连线:
public Form1() {
InitializeComponent();
Tabs.SelectedIndexChanged += new EventHandler(Tabs_SelectedIndexChanged);
}
还有其他事件可以为您提供此信息:Selected
和Selecting
。
void Tabs_Selected(object sender, TabControlEventArgs e) {
if (e.TabPage == TaskListPage) {
// etc
}
}
答案 1 :(得分:0)
第一部分是
public Form1()
{
// This is near the top of the form 1 code in form1.cs
InitializeComponent();
tabControl1.SelectedIndexChanged += new EventHandler(TabControl1_SelectedIndexChanged);
}
然后在常规代码中向下,只需在单击标签页后告诉哪个控件应该具有焦点。在我的文字处理器中,我使用了富文本框和制表符控件来模拟msword功能区。我的案例中的富文本控件不在标签页上,因为我的标签页可能在表格顶部覆盖1或2英寸
private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
richTextBox1.Focus();
}
这就是我所说的文字处理器。它适用于任何想要使用它的人。 Larry's Journal
答案 2 :(得分:0)
private void tabControl1_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab.Text =="All")
{
MessageBox.Show("All");
}
else
MessageBox.Show("hello world");
}
}
Try This It should be work