我想从 TabControl 中隐藏 TabPage。
我试过这样:
MyTabControls.TabPages[1].Hide();
它没有隐藏。
所以我搜索并看到应该删除它并在您想要时重新创建:如何从 TabControl 隐藏 TabPage
在这种情况下,Hide
函数到底在做什么?
截屏:
我想从 TabControl 中隐藏 TabPage。
我试过这样:
MyTabControls.TabPages[1].Hide();
它没有隐藏。
所以我搜索并看到应该删除它并在您想要时重新创建:如何从 TabControl 隐藏 TabPage
在这种情况下,Hide
函数到底在做什么?
截屏:
可悲的是,你不能如你所愿。如果您想要这种效果,您必须添加和删除选项卡并重新添加它们。
尝试使用这种语法:
theTabControl.TabPages.Remove(tabPageA);
然后重新添加:
theTabControl.TabPages.Add(tabPageA);
Hide() - 隐藏控件相当于将 Visible 属性设置为 false。调用 Hide 方法后,Visible 属性返回 false 值,直到调用 Show 方法。
为什么你可能会使用它——你可能会使用Show()
或者Hide()
当你知道它的价值时,Visible
当你将可见性作为参数时使用,尽管我个人倾向于总是使用Visible
.
在这种情况下它将做什么- 在这种情况下,它是无用的,不会做任何事情。就像Visible()一样,以下适用于它:
“TabPage 控件受其容器约束,因此从 Control 基类继承的某些属性将不起作用,包括 Top、Height、Left、Width、Show 和 Hide。”
原因在MSDN上说明为
TabPage 控件受其容器约束,因此从 Control 基类继承的某些属性将不起作用,包括 Top、Height、Left、Width、Show 和 Hide。
TabControl 中的选项卡是 TabControl 的一部分,但不是各个 TabPage 控件的一部分。TabPage 类的成员(例如 ForeColor 属性)仅影响选项卡页的客户矩形,而不影响选项卡。此外,TabPage 的 Hide 方法不会隐藏选项卡。若要隐藏选项卡,您必须从 TabControl.TabPages 集合中删除 TabPage 控件。
由于TabPage
该类是从该类派生的,Control
因此它必须至少具有该方法Control
。所以这个Hide()
功能虽然没有效果,但不能被删除。它不是因为它做了什么,而是因为它与Control
类的关系。
(不要问我为什么它没有效果。我也想要Hide()
我的标签。)
试试这个小技巧;
在设计器中创建选项卡控件,然后在表单的构造函数中设置以下内容;
this.tabReportSelection.ItemSize = new System.Drawing.Size(0, 1);
this.tabReportInformation.Appearance = System.Windows.Forms.TabAppearance.Buttons;
this.tabReportInformation.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
然后在您的表单代码中的某处,使用以下内容显示您想要的 TabPage;
tabReportSelection.SelectTab("tabPageName");
它对我来说效果很好。
TabPage 控件受其容器约束,因此从 Control 基类继承的某些属性将不起作用,包括 Top、Height、Left、Width、Show 和 Hide。TabControl 中的选项卡是 TabControl 的一部分,但不是各个 TabPage 控件的一部分。TabPage 类的成员(例如 ForeColor 属性)仅影响选项卡页的客户矩形,而不影响选项卡。此外,TabPage 的 Hide 方法不会隐藏选项卡。若要隐藏选项卡,您必须从 TabControl.TabPages 集合中删除 TabPage 控件。