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;
            }
        }
    }
}

 

posted on 2022-10-20 23:20  hanzq_go  阅读(470)  评论(0编辑  收藏  举报

导航