【问题标题】:C# TabControl Selected event seems to not workC# TabControl Selected 事件似乎不起作用
【发布时间】:2011-12-31 14:45:03
【问题描述】:

我正在尝试访问用于选择选项卡的事件处理程序,基本上我在 tabControl1 中有 3 个选项卡页。我希望能够根据在选择新选项卡时选择的选项卡来操作列表框中显示的内容。 这不起作用,无论何时选择标签页,它都无法显示消息框,(当该行未注释时)

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

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

【问题讨论】:

  • 确保您的页面索引在 (TabPages Collection) 中,此命令在 2010 年有效

标签: c# tabcontrol


【解决方案1】:

这不是正确的分配。你的第二个参数是错误的。

试试这个:

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

【讨论】:

  • 好了,谢谢!我不知道我必须注册我认为它就像其他按钮等的事件,其中已选择已处理。
【解决方案2】:

说明

Select 不是正确的事件。你应该使用SelectedIndexChanged

SelectedIndexChanged在 SelectedIndex 属性更改时发生。

样本

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

更多信息

【讨论】:

  • 这不起作用可能是因为以下类似的注册问题我不确定,但下一张海报已经让它正常工作。不过,谢谢。
【解决方案3】:

有一种更简单的方法可以做到这一点。 有一个标签被选中的事件

Enter 事件(在 tabPage1 本身的属性中 不在选项卡控件属性上

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多