C# TabControl控件中TabPage选项卡切换时的触发事件问题
作者:程序猿_liter 发布时间:2022-10-30 08:11:13
TabControl控件中TabPage选项卡切换时的触发事件
选项卡切换触发的是TabControl控件的SelectedIndexChanged事件。
当TabControl控件的任何一个TabPage被点击或选择,即发生SelectedIndexChanged事件事件。
代码如下:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 0)//也可以判断tabControl1.SelectedTab.Text的值
{
//执行相应的操作
tabPageSubject.Parent = tabControlExtract;//显示
}
else if (tabControl1.SelectedIndex == 1)
{
//执行相应的操作
tabPageSubject.Parent = null; //隐藏选项卡tabPageSubject
}
}
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属性来设置隐藏。
如下:
当隐藏按钮按下的时候就设置显示按钮的父容器为空。
下面试验一下:
如下,设置成功!!
来源:https://blog.csdn.net/liao513146936/article/details/123841330
猜你喜欢
- 代码思路:想要循环遍历文件夹下所有子文件夹,就要用到递归。首先判断路径是否存在:是:获取文件判断是否文件夹:是:调用自身,继续获取子文件夹下
- Bean的生命周期解释(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某
- 嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输
- 记录一下工作流的在Springboot中的使用,,顺便写个demo,概念,什么东西的我就不解释了,如有问题欢迎各位大佬指导一下。1.创建sp
- 1、spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name)2、在web.xm
- 先看Demo运行效果SharedPreferences详解SharedPreferences是Android平台上一个轻量级的存储类,用来保
- 一、QQ邮箱打开POP3/SMTP服务上面的服务开启后,会得到一串授权密码在springboot配置中需要用到二、springboot配置I
- 1.下载文件,将文件保存到本地。(只试用excel);2.对文件的标题进行检验;3.获取导入的批次(取一个表的一个值,加1);4.循环获取文
- 本文实例讲述了Java编程调用微信分享功能。分享给大家供大家参考,具体如下:这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发
- Java8的groupingBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map对集合按照单个属性分组、分组
- 在做业务开发时,遇到了一个事务不起作用的问题。大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚。查阅资料后,问
- 本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下一、 代码import java.awt.*;impo
- 这篇文章主要介绍了Spring ApplicationListener * 用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 一、BroadcastState 的介绍广播状态(Broadcast State)是 Operator State 的一种特殊类型。如果我们
- 如下所示:package com.lcn.day05;import java.util.Scanner;public class Array
- 前言今天刚买了一台服务器,上面什么都没有,正好可以出一期 Linux 上配置java环境的教程可以看到我这个服务器上面是没有配置过 java
- 自定义注解+springAop参数非空校验自定义注解,来对对应的方法进行入参校验,为空返回参数错误新建注解类@interface Param
- 前言前面一篇我们介绍了使用 shared_preferences实现简单的键值对存储,然而我们还会面临更为复杂的本地存储。比如资讯类 App
- C++/java 继承类的多态详解学过C++和Java的人都知道,他们二者由于都可以进行面向对象编程,而面向对象编程的三大特性就是封装、继承
- tomcat中文乱码问题这几天测试的兄弟发现了项目中存在乱码问题 经过排查发现是tomcat中的问题 于是在server.xml中添加了如下