我希望有人可以帮助我,我的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();
}
所以我的问题是如何从按钮转到上一个标签页?我已经浏览了这里,并尝试了所有出现的链接,但没有任何想法?
答案 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()
。