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

Hiding TabPage from TabControl in Winform application

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

禁用选项卡实现了这一点
tabControl1.TabPages[1].Enabled = false;

但我希望隐藏该选项卡,或者应该禁用单击该选项卡本身。

你问了两个问题:

  • 如何隐藏一个TabPage

  • 如何使其不可选择

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

tabPage3.Parent = helperTab;

要使其不可选择,请编写 Tab 控件的 Selecting 事件。你需要设置一个flag,可能在页面的Tag,然后你可以防止设置了flag的页面被选中:

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

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

隐藏 TabPage 并删除 Header:

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

显示 TabPage 并可见 Header:

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;