基本信息
源码名称:winform 多页签(tab页)显示窗体 示例源码
源码大小:0.11M
文件格式:.zip
开发语言:C#
更新时间:2018-02-08
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 4 元 
   源码介绍

实现点击窗体 动态加载窗体显示,并显示对应的窗体页签




 private void Form1_Load(object sender, EventArgs e)
        {
            this.tabControl1.Height = 22;
            MyFuncLib.FrmLsit = new ArrayList();
            MyFuncLib.TabList = new ArrayList();
            this.IsMdiContainer = true;
            this.timer1.Start();
        }


        private void tabPage_Click(object sender, EventArgs e)
        {
            TabPage tab = (TabPage)sender;
            foreach (Form frm in MyFuncLib.FrmLsit)
            {
                if (frm.Name.Equals(tab.Name))
                {
                    activeForm(frm);
                    break;
                }
            }
        }

        /// <summary>
        /// 关闭Form并移除Tab
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">e</param>
        public void tabPage_DoubleClick(object sender, EventArgs e)
        {
            // 移除Form和tab选项卡
            TabPage tab = (TabPage)sender;
            this.tabControl1.TabPages.Remove(tab);
            foreach (Form frm in MyFuncLib.FrmLsit)
            {
                if (frm.Name.Equals(tab.Name))
                {
                    MyFuncLib.FrmLsit.Remove(frm);
                    frm.Close();
                    break;
                }
            }
            // 显示当前Form
            foreach (Form frm in MyFuncLib.FrmLsit)
            {
                if (frm.Name.Equals(this.tabControl1.SelectedTab.Name))
                {
                    activeForm(frm);
                    break;
                }
            }
        }


        /// <summary>
        /// 显示Form,并进行必要的设置
        /// </summary>
        /// <param name="frm"></param>
        private void showForm(Form frm)
        {
            frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            frm.MdiParent = this;
            frm.Dock = DockStyle.Fill;
            frm.Show();
            MyFuncLib.FrmLsit.Add(frm);
            MyFuncLib.ActivedFrm = frm;
        }
        /// <summary>
        /// 激活Form
        /// </summary>
        /// <param name="frm"></param>
        private void activeForm(Form frm)
        {
            frm.Activate();
            frm.Focus();
            frm.BringToFront();
            MyFuncLib.ActivedFrm = frm;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.timer1.Enabled = false;
            //关闭要关闭的tab
            if (!string.IsNullOrEmpty(MyFuncLib.FormName))
            {
                foreach (Form frm in MyFuncLib.FrmLsit)
                {
                    if (frm.Name.Equals(MyFuncLib.FormName))
                        frm.Close();
                }
                MyFuncLib.FormName = string.Empty;
            }
            //打开Form
            if (!string.IsNullOrEmpty(MyFuncLib.WaitOpenFormName))
            {
                OpenOrActiveForm(true, MyFuncLib.WaitOpenFormName, string.Empty, MyFuncLib.WaitOpenFormTitle, string.Empty);
                MyFuncLib.WaitOpenFormName = string.Empty;
                MyFuncLib.WaitOpenFormTitle = string.Empty;
            }
            this.timer1.Enabled = true;

        }