5

我想从 TabControl 中隐藏 TabPage。

我试过这样:

MyTabControls.TabPages[1].Hide();

它没有隐藏。

所以我搜索并看到应该删除它并在您想要时重新创建:如何从 TabControl 隐藏 TabPage

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

截屏:

在此处输入图像描述

4

5 回答 5

11

可悲的是,你不能如你所愿。如果您想要这种效果,您必须添加和删除选项卡并重新添加它们。

尝试使用这种语法:

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。”

于 2013-03-20T08:32:47.250 回答
10

原因在MSDN上说明为

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

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

于 2013-03-20T09:05:03.640 回答
2

由于TabPage该类是从该类派生的,Control因此它必须至少具有该方法Control。所以这个Hide()功能虽然没有效果,但不能被删除。它不是因为它做了什么,而是因为它与Control类的关系。

(不要问我为什么它没有效果。我也想要Hide()我的标签。)

于 2013-09-12T19:46:36.533 回答
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");

它对我来说效果很好。

于 2013-10-21T23:48:42.547 回答
0

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

于 2017-10-17T08:24:00.217 回答