【发布时间】:2013-11-07 11:05:24
【问题描述】:
在使用 VS2005 的 C# 中,我有一个带有 7 个选项卡的 Winforms TabControl,但我希望最后一个选项卡只有在设置了某个配置选项时才可见。
如何让 TabControl 只显示前六个标签?换句话说,如何使第七个标签不可见?
【问题讨论】:
标签: c# winforms tabcontrol
在使用 VS2005 的 C# 中,我有一个带有 7 个选项卡的 Winforms TabControl,但我希望最后一个选项卡只有在设置了某个配置选项时才可见。
如何让 TabControl 只显示前六个标签?换句话说,如何使第七个标签不可见?
【问题讨论】:
标签: c# winforms tabcontrol
private void HideTab(object sender, EventArgs e)
{
this.tabControl1.TabPages.Remove(this.tabPage2);
}
private void ShowTab(object sender, EventArgs e)
{
this.tabControl1.TabPages.Add(this.tabPage2);
}
this.tabPage2 是你的第 7 个标签页,不管你给它起什么名字。
【讨论】:
不,它不可能隐藏选项卡控件中的选项卡。如果您在运行时添加选项卡,则如果条件不满足,则不要添加第 7 个选项卡。
如果您在设计时完成,则在条件失败时删除选项卡。
yourTabControl.TabPages.Remove(tabPageName);
【讨论】:
你可以实现一个属性
public bool TabVisible
{
get
{
return tabControl1.Contains(tabPage2);
}
set
{
if(value == TabVisible) return;
if(value)
tabControl1.TabPages.Add(tabPage2);
else
tabControl1.TabPages.Remove(tabPage2);
}
}
你还应该覆盖你的处理函数,
您可以将Dispose 函数从设计器生成的代码移到您自己的代码中,设计器会注意到这一点。你看到components.Dispose();函数已经无法到达tabPage进行处理了,所以如果还没有被处理就需要手动处理了。否则,特别是如果您多次打开窗口,您会用完窗口句柄
【讨论】: