15

我正在尝试根据在选项卡控件上单击的选项卡页自动触发事件。

在我的表单的设计模式下,当我单击选项卡时,属性框会显示 Tabs System.Windows.Forms.TabControl 选择哪个选项卡。但是,我必须单击实际页面,而不是要更改为页面名称的属性选项卡,例如 TaskListPage System.Windows.Forms.TabPage。

我的选项卡控件称为选项卡,我试图使用下面的代码对其进行测试,该代码应该根据选项卡选项显示一条消息。

 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");
            }
        }

当我测试上面的代码时,什么都没有发生。

任何帮助在单击特定选项卡时使事件正常工作将不胜感激!

谢谢

4

3 回答 3

22

听起来你没有连接它:

public Form1() {
  InitializeComponent();    
  Tabs.SelectedIndexChanged += new EventHandler(Tabs_SelectedIndexChanged);
}

还有其他事件也可以为您提供此信息:SelectedSelecting

void Tabs_Selected(object sender, TabControlEventArgs e) {
  if (e.TabPage == TaskListPage) {
    // etc
  }
}
于 2012-03-13T12:52:41.217 回答
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();
    }

这就是我所说的文字处理器。任何想要使用它的人都可以使用它。拉里的日记

于 2016-08-01T04:52:51.360 回答
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
于 2019-12-16T17:43:40.063 回答