TabPage.Hide()是什么意思?

5
我希望您能够隐藏TabControl中的TabPage。
我尝试了以下方法:
MyTabControls.TabPages[1].Hide();

它不会隐藏。

所以我搜索并发现应该在需要时删除并重新创建它:如何从TabControl隐藏TabPage

在这种情况下,Hide函数到底是做什么的?

截图:

enter image description here


你确定 TabControl.TabPageCollection 类有一个 Hide 方法吗?我在 MSDN 上找不到它。 - Soner Gönül
@SonerGönül,我确定,我会添加一张截图。 - Hodaya Shalom
5个回答

11

遗憾的是,您不能随心所欲地做。如果您想要那种效果,您需要添加和删除标签,并重新添加它们。

尝试使用这种语法:

theTabControl.TabPages.Remove(tabPageA);

然后重新添加:

theTabControl.TabPages.Add(tabPageA);

Hide() - 隐藏控件等同于将 Visible 属性设置为 false。调用 Hide 方法后,Visible 属性返回 false,直到调用 Show 方法。

为什么使用它 - 当您知道值并使用可见性作为参数时,您可能会使用 Show()Hide(),尽管我个人倾向于始终使用 Visible

在这种情况下的效果 - 在这种情况下,它是无用的,不会做任何事情。就像Visible()一样,以下内容适用于它:

"TabPage 控件受其容器的限制,因此从 Control 基类继承的某些属性将不起作用,包括 Top、Height、Left、Width、Show 和 Hide。"


当我写的时候,我意识到.. 我想了解函数 Hide 的作用是什么。 - Hodaya Shalom
谢谢您详细的回答,但我想再解释一下,我想知道TabPage中的Hide函数是做什么用的。 - Hodaya Shalom
2
@HodayaShalom 它对 tabPage 没有任何作用 - 建议不要使用。查找 visible 属性 - http://msdn.microsoft.com/en-us/library/y6e1ah1k.aspx - 它也是“对此控件没有意义的”。与 hide() 相同。 - dsgriffin
请使用我上面写的内容来实现你想要的功能。我已经在问题中解释过了,我并不是试图让它与函数一起工作。我自己意识到这是不可能的!我所需要的不是建议该怎么做(我已经做了),而是对“Hide”函数的解释。无论如何,还是谢谢。 - Hodaya Shalom

10
理由在 MSDN 上陈述为:

TabPage控件受其容器的限制,因此从Control基类继承的某些属性将无效,包括Top、Height、Left、Width、Show和Hide。

TabControl中的选项卡是TabControl的一部分,但不是单个TabPage控件的一部分。 TabPage类的成员(例如ForeColor属性)仅影响选项卡页面的客户端矩形,但不影响选项卡本身。 此外,TabPage的Hide方法不会隐藏选项卡。 要隐藏选项卡,必须从TabControl.TabPages集合中删除TabPage控件。


2
由于TabPage类是从Control类派生而来的,因此它必须至少具有Control的方法。因此,即使它没有效果,也无法删除Hide()函数。它不是因为它做了什么,而是因为与Control类的关系。
(不要问我为什么它没有效果。我也想隐藏我的选项卡。)

0

试试这个小窍门;

在设计器中创建你的选项卡控件,然后在你的窗体构造函数中设置以下内容;

 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");

对我来说运行得相当好。


0
控件受其容器的限制,因此从Control基类继承的某些属性将不起作用,包括Top、Height、Left、Width、Show和Hide。
TabControl中的选项卡是TabControl的一部分,但不是单个TabPage控件的一部分。TabPage类的成员(例如ForeColor属性)仅影响选项卡页的客户端矩形,而不影响选项卡。此外,TabPage的Hide方法不会隐藏选项卡。要隐藏选项卡,必须从TabControl.TabPages集合中删除TabPage控件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接