C#选项卡TabControl控件隐藏指定选项卡的办法,任意不支持隐藏属性的实现办法详解

C#选项卡TabControl控件隐藏执行选项卡的办法

如下图窗体:
在这里插入图片描述

如果我们想要隐藏tabPage1的话,我们该怎么做。

首先,tabControl控件由若干个tabPage成员组成。而这些tabPage成员的属性中并没有visable属性来控制它是否隐藏,那么怎么来实现隐藏呢?

首先,打开From的代码生成器:
在这里插入图片描述

翻到最下面我们可以看到如下几行代码。
在这里插入图片描述

这说明了tabPage实际上是个类。那么我们便可以正对具体的tabPage1/tabPage2/tabPage3进行操作。选项卡隐藏一般不会再tabControl上。

查看TabPage类的定义如下:
在这里插入图片描述
从上面的定义我们看了,有一个Visible的属性。也许和选项卡的隐藏有关。虽然Visible官方说明此成员对控件无意义。但是经过探索,发现他还是可以用的如下:
在这里插入图片描述
我们在tabPage1放一个Button控件便于观察。
将隐藏和显示两个按钮编写Click时间如下:

在这里插入图片描述
经过试验可知,Visble属性还是有效果的,只不过效果与我们想要的不太一样。

当点击隐藏按钮时如下:Button依靠的容器消失了。但是tabPage选项卡还在!!!
在这里插入图片描述
当我们点击显示按钮时如下:Button与其依符的容器又显示出来了!!!

那么有没有其他办法呢?
综合网上诸多的办法,有一种比较方便就是利用TabPage类中的Parent属性设置TabPage成员依靠的父类容器即可。
具体实现如下:

在这里插入图片描述
利用Parent属性能够实现选项卡隐藏与显示。状态如下:
在这里插入图片描述

在这里插入图片描述

那么为什么设置Parent属性就能够实现隐藏呢?

经过追踪发现TabPage的Parent属性实际在继承链中的Control类中。
换言之Parent是Control类的属性。TabPage类是继承Control类的。而Parent属性的解释如下:
在这里插入图片描述
Parent属性是控件的父容器。基本上每个控件都有个父容器。这是他们的依附的区域。如果父容器为空的话,控件必然无法依附,自然也就不能显示出来了。
窗体From是没有Parent父容器属性的,因为它是最底层的容器!!!

由于每个控件都有Parent,同理我们可以通过Parent属性来控制任意控件的显示与否。

如下,我们可以通过设置“显示”按钮的Parent属性来设置隐藏。
如下:
在这里插入图片描述
当隐藏按钮按下的时候就设置显示按钮的父容器为空。下面试验一下:
在这里插入图片描述
如下,设置成功!!

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值