2013-03-20 101 views
4

我想隐藏TabControl中的TabPage。TabPage.Hide()做什么?

我试着这样说:

MyTabControls.TabPages[1].Hide(); 

它不会隐藏。

所以我搜索,发现应该删除并重新创建,当你想:How to hide TabPage from TabControl

在这种情况下,什么是Hide功能做呢?

截图:

enter image description here

+0

你使用winforms吗? – algreat 2013-03-20 08:32:17

+0

你确定有'TabControl.TabPageCollection'类的'Hide'方法吗?我在_MSDN_上找不到它。 – 2013-03-20 08:37:48

+0

@algreat是... – 2013-03-20 08:40:08

回答

8

其原因是在MSDN作为

TabPage的控制表示由它们的容器的限制,所以一些 属性从控制基类继承将没有任何效果, 包括顶部,高度,左,宽度,显示和隐藏。

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

9

可悲的是,你不能如你所愿做。你必须添加和删除标签,并重新添加它们,如果你想要的效果。

尝试使用这种语法:

theTabControl.TabPages.Remove(tabPageA); 

然后重新添加:

theTabControl.TabPages.Add(tabPageA); 

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

为什么你可以用它 - 您可以使用Show()Hide()当你知道的价值和使用Visible当你的知名度作为参数,虽然我个人倾向于始终使用Visible

什么它将在这种情况下做的 - 在这种情况下,它是无用的,不会做任何事情。就像Visible(),以下适用于它:

“TabPage的控制是通过其容器的限制,所以某些属性从Control基类继承不会有任何效果,包括顶部,高度,左,宽度,显示和隐藏“。

+0

正如我写的,我意识到..我想了解什么是“隐藏”功能。 – 2013-03-20 08:41:40

+0

感谢您的详细解答,但我会再次解释我自己,我想知道TabPage中的Hide功能。 – 2013-03-20 08:51:59

+2

@HodayaShalom它不会对tabPage做任何事情 - 建议不要使用它。查看可见属性 - http://msdn.microsoft.com/en-us/library/y6e1ah1k.aspx - 它对于这个控件也没有意义。与hide() – lifetimes 2013-03-20 08:53:41

1

作为TabPage类是从Control类派生它必须有至少方法Control了。所以Hide()功能不能被删除,尽管它没有效果。它不在那里,因为它做了一些事情,但是因为和Control类有关系。

(不要问我为什么它没有影响我想只是Hide()我的选项卡以及。)

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

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