当前位置: 首页 > news >正文

TabControl控件

TabControl控件,页面集合

用于管理一个TabPages集合,每个TabPage都是一个容器控件

常用属性:

MultiLine,TabPages,AlignMent,Appearance,ItemSize,ImagesList

知识点1:

MultiLine,是否允许多行选项卡

AlignMent,控制选项卡的显示位置,可以在TabControl的上、下、左、右显示

Appearance,控制选项卡的外观

ItemSize,控制选项卡的高度和宽度(注意不是TabControl的宽和高),ItemSize的宽度设置后还需要设置SizeMode,否则选项卡的宽度不变,只有高度随设定的高度调整

知识点2:

添加一个简单TabPage
复制代码

//通过代码添加一个简单TabPageTabPage tab1 = new TabPage();tab1.Text = "选项卡";tab1.Name = "tp1";tab1.BackColor = Color.Orange;if (!tabControl1.TabPages.ContainsKey(tab1.Name))//如果有就不再添加{tabControl1.TabPages.Add(tab1);}

复制代码

知识点3:

添加一个嵌入Form窗体的TabPage

复制代码//将Form窗体嵌入到TabPage中FormSplitContainer f = new FormSplitContainer();//新建一个窗体f.TopLevel = false;//取消顶级窗口f.FormBorderStyle = FormBorderStyle.None;//无边框f.WindowState = FormWindowState.Maximized;//窗口最大化TabPage tab2 = new TabPage();tab2.Text = f.Text;tab2.Name = f.Name;tab2.Controls.Add(f);if (!tabControl1.TabPages.ContainsKey(tab2.Name))//如果有就不再添加{tabControl1.TabPages.Add(tab2);f.Show();}复制代码

知识点4:

移除或删除一个简单TabPage//移除普通选项页tabControl1.TabPages.Remove(tabPage1);//方法1tabControl1.TabPages.RemoveAt(1);//方法2tabControl1.TabPages.RemoveByKey("用户管理");//方法3

知识点5:


移除或删除当前选中的TabPage//移除当前选项页int n = tabControl1.SelectedIndex;tabControl1.TabPages.RemoveAt(n);

知识点6

移除或删除一个带嵌入窗体的TabPage
复制代码


//移除带嵌入窗体的选项卡TabPage tp = tabControl1.SelectedTab;foreach (Form item in Application.OpenForms){if (tp.Name == item.Name){item.Close();break;}}tabControl1.TabPages.Remove(tp);

复制代码

知识点7

设置选中页的3种方法
复制代码private void FormTabControl_Load(object sender, EventArgs e){//设置选中页的三种方法tabControl1.SelectedIndex = 0;tabControl1.SelectedTab = tabPage1;tabControl1.SelectTab(tabPage1);}复制代码

知识点8

循环移动选中页
复制代码private void btnSelect_Click(object sender, EventArgs e){if (tabControl1.SelectedIndex < tabControl1.TabPages.Count - 1){`tabControl1.SelectedIndex += 1;`````}else{tabControl1.SelectedIndex = 0;}}复制代码

整体展示效果:
1308641-20221021091337497-1588039196

代码如下:
复制代码using System;
using System.Drawing;
using System.Windows.Forms;namespace ControlsTest
{public partial class FormTabControl : Form{public FormTabControl(){InitializeComponent();this.Load += FormTabControl_Load;}private void FormTabControl_Load(object sender, EventArgs e){//设置选中页的三种方法tabControl1.SelectedIndex = 0;tabControl1.SelectedTab = tabPage1;tabControl1.SelectTab(tabPage1);}private void btnAdd_Click(object sender, EventArgs e){//通过代码添加一个简单TabPageTabPage tab1 = new TabPage();tab1.Text = "选项卡";tab1.Name = "tp1";tab1.BackColor = Color.Orange;if (!tabControl1.TabPages.ContainsKey(tab1.Name))//如果有就不再添加{tabControl1.TabPages.Add(tab1);}//将Form窗体嵌入到TabPage中FormSplitContainer f = new FormSplitContainer();f.TopLevel = false;//取消顶级窗口f.FormBorderStyle = FormBorderStyle.None;//无边框f.WindowState = FormWindowState.Maximized;//窗口最大化TabPage tab2 = new TabPage();tab2.Text = f.Text;tab2.Name = f.Name;tab2.Controls.Add(f);if (!tabControl1.TabPages.ContainsKey(tab2.Name))//如果有就不再添加{tabControl1.TabPages.Add(tab2);f.Show();}}private void btnClose_Click(object sender, EventArgs e){//移除普通选项页tabControl1.TabPages.Remove(tabPage1);//方法1tabControl1.TabPages.RemoveAt(1);//方法2tabControl1.TabPages.RemoveByKey("用户管理");//方法3//移除当前选项页int n = tabControl1.SelectedIndex;tabControl1.TabPages.RemoveAt(n);//移除带嵌入窗体的选项卡TabPage tp = tabControl1.SelectedTab;foreach (Form item in Application.OpenForms){if (tp.Name == item.Name){item.Close();break;}}tabControl1.TabPages.Remove(tp);}private void btnSelect_Click(object sender, EventArgs e){if (tabControl1.SelectedIndex < tabControl1.TabPages.Count - 1){tabControl1.SelectedIndex += 1;}else{tabControl1.SelectedIndex = 0;}}}
}复制代码
http://www.jsqmd.com/news/19472/

相关文章:

  • 权威调研榜单:硬质合金挤压模具厂家TOP3综合实力深度解析
  • 详细介绍:【Linux指南】gdb进阶技巧:断点高级玩法与变量跟踪实战
  • Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
  • 2025 年点火器厂家最新推荐排行榜:综合评估高能 / 自动 / 防爆等多类型产品,精选优质品牌
  • VS2026 使用 WebDeploy 发布到 IIS - Jeff
  • 2025 激光灯厂家最新推荐榜:全方位测评核心实力与潜力,甄选优质供应商实用指南
  • SpringBoot3 集成Junit4 - 实践
  • 详细介绍:Spark Shuffle:分布式计算的数据重分布艺术
  • 2025 年火焰检测器生产厂家最新推荐权威排名:涵盖防爆 / 一体化 / 紫外线 / 离子 / 红外线 / 红紫外复合 / 智能型,多维度解析助力企业精准选型
  • 排序算法的介绍
  • 调理neovide之 自定义keymap-不用starter-template的话,直接init.lua中改
  • MyEMS:用开源撕开能源管理 “黑箱”,让节能不再 “凭感觉”
  • FPGA控制RGMII接口PHY芯片基础
  • kettle基本操作4:使用日期字段增量数据同步
  • 冰川之国破例:冰岛首次发现蚊子,气候变化敲响警钟
  • 成语趣有奖微信小程序管理系统:趣味与变现兼具的优质选择
  • 2025 年钛棒厂家最新推荐权威榜单:深度解析国内头部厂家国际市场开拓成绩及产品优势钛螺丝/加工件/医用/合金/异形件钛棒厂家推荐
  • 掌门社交电商系统:赋能本地生活的三方共赢新生态
  • 就餐宝微信小程序:重塑企业食堂管理新生态
  • 2025 年度茶叶行业优质厂家权威榜单:最新推荐全解析,小青柑 / 普洱等好茶选品指南
  • 如何解除百度网盘下载限速
  • 分布式专题——33 一台新机器进行Web页面请求的历程 - 指南
  • 开源隐私计算框架SecretFlow | 基于隐语的金融全链路场景介绍和应用实践
  • 2025 最新智能卫浴镜厂家推荐榜单:家装酒店工装优选,除雾语音多功能品牌权威盘点多功能/语音/蓝牙/led/带灯智能卫浴镜厂家推荐
  • win11暂停更新
  • 2025 年陶土砖生产厂家最新推荐权威榜单:劈开/红色/干挂/砌筑/仿古/透气/耐火/异型/装饰/外墙陶土砖产品及生产流程优势全面解读
  • redis 5.0.14单机部署
  • 视频汇聚平台EasyCVR在智慧工地无网线无电线监控现场视频解决方案
  • Spring进阶 - SpringMVC达成原理(二)DispatcherServlet处理请求的过程
  • 2025多校冲刺CSP模拟赛7