从Winform应用程序中的TabControl隐藏TabPage

时间:2015-05-14 09:43:32

标签: c# winforms tabcontrol tabpage

我在Winform的应用程序中有一个TabControl, 我必须禁用第二个选项卡,只有在我的第一页上执行某些操作后才会启用它。 我通过代码禁用标签

实现了这一目标
tabControl1.TabPages[1].Enabled = false;

但我希望隐藏该标签,或者单击标签本身应该被禁用。

2 个答案:

答案 0 :(得分:0)

你问过两个问题:

  • 如何隐藏TabPage

  • 如何使其不可选择

你无法隐藏TabPage;最接近和最简单的解决方案是将其从原始Tab控件中删除,并将其添加到隐藏的帮助器Tab控件中:

tabPage3.Parent = helperTab;

要使其不可选,请对Selecting控件的Tab事件进行编码。您需要设置一个标志,可能在页面的Tag中,然后您可以阻止设置标志的页面被选中:

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
    if (e.TabPage.Tag == "X") e.Cancel = true;
}

答案 1 :(得分:0)

试试这个。它将隐藏并显示TabPages而不会丢失控件。

隐藏TabPage并删除标题:

this.tabPage1.Hide();
this.tabPage3.Hide();
this.tabPage5.Hide();
tabControl1.TabPages.Remove(tabPage1);
tabControl1.TabPages.Remove(tabPage3);
tabControl1.TabPages.Remove(tabPage5);

显示标签页并显示标题:

tabControl1.TabPages.Insert(0,tabPage1);
tabControl1.TabPages.Insert(2, tabPage3);
tabControl1.TabPages.Insert(4, tabPage5);
this.tabPage1.Show();
this.tabPage3.Show();
this.tabPage5.Show();
tabControl1.SelectedTab = tabPage1;