TabControl控件
TabControl控件,页面集合
用于管理一个TabPages集合,每个TabPage都是一个容器控件
常用属性:
MultiLine,TabPages,AlignMent,Appearance,ItemSize,ImagesList
知识点1:
MultiLine,是否允许多行选项卡
AlignMent,控制选项卡的显示位置,可以在TabControl的上、下、左、右显示
Appearance,控制选项卡的外观
ItemSize,控制选项卡的高度和宽度(注意不是TabControl的宽和高),ItemSize的宽度设置后还需要设置SizeMode,否则选项卡的宽度不变,只有高度随设定的高度调整
知识点2:
添加一个简单TabPage
//通过代码添加一个简单TabPage TabPage 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);//方法1 tabControl1.TabPages.RemoveAt(1);//方法2 tabControl1.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; } }
整体展示效果:
代码如下:
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) { //通过代码添加一个简单TabPage TabPage 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);//方法1 tabControl1.TabPages.RemoveAt(1);//方法2 tabControl1.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; } } } }
分类:
winform控件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?