Visual Studio C# WinForm开发入门(5):TabControl 控件使用

news2024/12/23 0:14:06

TabContrl选项卡控件可创建标签化窗口,在实际 编程中经常用到,该控件的作用是将相关的组件组合到一系列选项卡页面上。
比如下面的例子,在tabPage1页面和tabPage2页面各放了2个checkBox控件,通过点击不同page即可切换:
在这里插入图片描述
在这里插入图片描述
1、添加和删除TabControl控件中的选项卡

有两种方法:

第一,当鼠标单击TabControl控件右上角带三角形的小按钮时就会打开一个小窗口,该窗口可以方便地在设计期间添加和删除TabPages集合。
在这里插入图片描述
第二,选中TabControl控件,在属性面板中单击TabPages集合的…按钮,会弹出“TabPage集合编辑器”对话框,并在该对话框中添加和移除TabPages集合。
在这里插入图片描述
在这里插入图片描述
TabControl控件的Multiline属性是用来设置是否显示多行选项卡。如果属性值是false时,就表示有多个选项卡不能一次显示出来,需要提供箭头查看剩余的选项卡。Multiline属性默认是false。
在这里插入图片描述
当page过多时,Multiline属性True的情况:
在这里插入图片描述

当page过多时,Multiline属性False的情况:
在这里插入图片描述
2、以编程方式添加和删除选项卡

默认情况下,TabControl控件包含两个TabPage控件,可以使用TabPage属性的Add方法和Remove方法实现选项卡的添加和删除。

常用属性:

属性说明
ImageList指定在标签上显示的图像
ItemSize指定标签的大小
Multiline表明是否能将标签显示成多行
SelectedIndex所选TabPage的索引
SelectedTab被选中的TabPage
TabCount返回标签页面的数量
TabPages返回TabControl内的TabPages集合

常用事件:

事件说明
SelectedIndexChanged当SelectedIndex变化时产生

下面看一个小例子:

从工具箱添加一个TabControl控件,添加两个Button控件,更改Text为“添加”和“删除”。
在这里插入图片描述
双击两个Button控件生成Click事件,编写事件程序:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //获取选择条中选项卡的数目
            string name = "新增选项卡" + (tabControl1.TabCount + 1).ToString();
            //实例化TabPage控件
            TabPage tab = new TabPage(name);
            //使用TabControl控件的TabPages属性的Add方法添加新选项卡
            tabControl1.TabPages.Add(tab);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            //获取当前选项卡页的索引值,并进行判断
            if(tabControl1.SelectedIndex==0)
            {
                MessageBox.Show("请选择要删除的选项卡");
            }
            else
            {
                //使用Remove方法删除指定选项卡
                tabControl1.TabPages.Remove(tabControl1.SelectedTab);
            }
        }
    }
}

运行程序,点击添加按钮,生成了一个名为新增选项卡3的page:

在这里插入图片描述
选择“新增选项卡3”page,点击删除按钮,则删除了这个page。注意这个示例程序不能删除第一个page。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交叉编译工具

工具链有一个松散的名称约定,如 arch[-vendor][-os]-abi-language . arch 适用于架构,编译器用于哪个目标平台: arm , mips , x86 , i686 ... vendor 是工具链供应商,以厂家名称命名的&#xf…

权威学者、企业CFO荟聚上海国家会计学院,共探「智能会计 价值财务」

4月21日,由用友主办的「智能会计 价值财务」2023企业数智化财务创新峰会在上海国家会计学院圆满举办。学院权威教授、业内专家与来自央国企、行业领先企业的财务先锋,线下云端共聚一堂,数万人共探大型企业财务数智化的全新价值主张。 会议伊始…

WLAN - 五大安全措施

文章目录 1 概述2 五大安全措施2.1 SSID 访问控制2.2 物理地址过滤 MAC2.3 有线等效保密 WEP2.4 WPA(IEEE 802.11i 草案)2.5 WPA2(IEEE 802.11i) 3 扩展3.1 网工软考真题 1 概述 无线局域网面临着两个主要问题,一是增…

【Unity入门】19.定时调用Invoke

【Unity入门】定时调用Invoke 大家好,我是Lampard~~ 欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (一)计时器 (1)Invoke 单词调用 计时器我们并不陌生,在cocos上有着schedule类是…

深度学习 - 45.MMOE Gate 简单实现 By Keras

目录 一.引言 二.MMoE 模型分析 三.MMoE 逻辑实现 • Input • Expert Output • Gate Output • Weighted Sum • Sigmoid Output • 完整代码 四.总结 一.引言 上一篇文章介绍了 MMoE 借鉴 MoE 的思路,为每一类输出构建一个 Gate 并最终加权多个 Exper…

http---HTTP缓存

目录 1、缓存介绍 2、http缓存 3、强缓存 4、协商缓存 1、缓存介绍 缓存:存储将被用的数据,让数据访问更快。 缓存相关术语 命中:在缓存中找到了请求的数据不命中/穿透:缓存中没有需要的数据命中率:命中次数/总…

Yarn(Yet Another Reource Negotiator)另一个资源协调者

官网引用 总结性 产生的需求 YARN工作逻辑 通用的资源管理系统,为上一层应用提供统一的资源管理和调度。解决集群资源利用率,数据共享,资源管理统一问题,yarn取代Job Tracker角色 组件说明 Client 向RM提交任务,终…

1、软件测试概述

1、软件测试概述 一、软件生命周期二、软件开发模型1、瀑布模型2、增量模型3、原型模型4、敏捷开发 三、软件质量1、软件质量概念2、影响软件质量的因素 一、软件生命周期 软件生命周期分为多个阶段,每个阶段有明确的任务,通常,可将软件生命…

ARM寄存器组织

ARM有37个32位长的寄存器: 1个用做PC(Program Counter); 1个用做CPSR(Current Program Status Register); 5个用做SPSR(Saved Program Status Registers); 30个通用寄存器。 AR…

Unity之OpenXR+XR Interaction Toolkit实现 射线和物体交互事件回调

前言 前面我们介绍了如何抓取物体,今天我们来说一下如何和3D的物体进行交互,得到接触的事件回调。 交互的两种方式: 1.直接抓取或者射线抓取物体,得到接触回调 2.射线或者手部触摸物体后,得到接触回调 准备工作 有了…

Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复

1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便 所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安…

嵌入式软考备考_3 嵌入式操作系统概述

嵌入式操作系统概述 工作在嵌入式环境中的操作系统 Embedded Operating System。 嵌入式和一般操作系统区别: 非通用操作系统,用于完成特定功能;性能实时性能源可靠性要求高;占用资源少;可剪裁,可配置。…

渗透测试 | Web信息收集

0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…

《程序员面试金典(第6版)》面试题 16.04. 井字游戏(棋盘类问题,C++)

题目描述 设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ",“X"和"O"组成,其中字符” "代表一个空位。 以下是井字游戏的规则: 玩家轮流将字符放入空位…

专门为麻醉科和手术室开发的:手术麻醉系统源码,系统稳定,功能完整,支持二次开发

手术麻醉系统源码:C# .net 桌面软件 C/S版 系统极其稳定,扩展性强,已在多家医院运营。 文末获取联系 手术麻醉信息管理系统是专门为麻醉科和手术室开发的围手术期临床信息管理系统,具备以下功能: 1.手术程管理系统整合了手术室、…

人工智能实践: 基于T-S 模型的模糊推理

模糊推理是一种基于行为的仿生推理方法, 主要用来解决带有模糊现象的复杂推理问题。由于模糊现象的普遍存在, 模糊推理系统被广泛的应用。模糊推理系统主要由模糊化、模糊规则库、模糊推理方法以及去模糊化组成, 其基本流程如图1所示。

C++(继承下)

目录: 1.继承与有元 2.继承与静态成员 3.单继承、多继承 4.如何定义一个不能被继承的类?? 5.分享有意思的一道题 6.菱形继承及菱形虚拟继承 --------------------------------------------------------------------------------------------…

【c语言】全局变量 | 局部变量的生命周期与作用域

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

亚马逊云科技赋能客户,为海思科打造安全高效的营销业务中台系统

羽翼渐丰&#xff0c;翱翔云端 携手亚马逊云科技&#xff0c;打造互联网级企业解决方案 秉承“为客户创造价值”的理念&#xff0c;在公司发展过程中&#xff0c;博智信息先后服务了众多知名企业&#xff0c;客户行业覆盖制造、零售、餐饮、科技、电子等。经过近20年的发展&a…

AutoGPT 是 prompt 工程的下一个前沿

前言 最近了解到Auto GPT的上线&#xff0c;下面我来整理一下整个体验过程&#xff0c;希望对大家有所帮助和启发。 首先Auto GPT是 OpenAI 的 Andrej Karpathy 都在大力宣传的一个开源项目&#xff0c;他认为 AutoGPT 是 prompt 工程的下一个前沿。 近日&#xff0c;AI 界貌…