C#Tabless控制上一个/后退/返回按钮失败?

时间:2013-04-14 00:27:43

标签: c#

我希望有人可以帮助我,我的Windows窗体应用程序上有一个Tabless Control,基本上是因为隐藏了标签,我在每个标签“Next”和“Back”中添加了2个按钮。

这是我的“下一步”按钮的代码片段:

private void nextbutton1_Click(object sender, EventArgs e)
{
    tabControl1.SelectedTab = tabPage3;
    this.toolStripStatusLabel8.Text = System.DateTime.Now.ToString();
}

哪个工作正常,但是当我在“后退”按钮上使用完全相同的理论时,它不起作用:

private void backbutton1_Click(object sender, EventArgs e)
{
    tabControl1.SelectedTab = tabmain;
    this.toolStripStatusLabel1.Text = System.DateTime.Now.ToString();
}

所以我的问题是如何从按钮转到上一个标签页?我已经浏览了这里,并尝试了所有出现的链接,但没有任何想法?

1 个答案:

答案 0 :(得分:1)

您应该使用SelectedIndex属性而不是使用具体的TabPage实例。这样,当您决定更改pab页面的顺序或添加新页面时,它仍然有效:

private void previousButton_Click(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex > 0)
    {
        tabControl1.SelectedIndex--;
    }
}

private void nextButton_Click(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex < tabControl1.TabCount - 1)
    {
        tabControl1.SelectedIndex++;
    }
}

由于.NET Framework中没有“Tabless”选项卡控件,我只能假设它的工作方式与标准TabControl类似。如果解决方案不起作用,您应该向我们提供有关您使用的实际课程的一些信息。

BTW:无需重复每页上的按钮。你为什么不把按钮放在TabControl之外?

另外:我看到您使用ToolStripStatusLabel来显示当前时间。每次用户点击某处时都不会更新它,而是在表单中添加Timer。将其Interval设置为1000并处理其Tick事件。在那里更新标签:

private void timer1_Tick(object sender, EventArgs e)
{
    toolStripStatusLabel1.Text = DateTime.Now.ToLongTimeString();
}

这种方式不断更新,无需重复任何操作。您需要在表单的构造函数中调用timer1.Start()