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;
}
}
}
}
复制代码

浙公网安备 33010602011771号