DotNetBar SuperTabItem 打开与关闭子窗体

winForm 专栏收录该内容
3 篇文章 0 订阅

先看图在这里插入图片描述
我是一个面向百度的程序员,遇到问题偷懒就是找度娘,网上打开子窗体的代码有许多,但是关闭子窗体的我没有度到,于是自己研究了10秒代码后有了启发,既然有打开代码,就能写关闭代码。

第一步:子窗体打开代码:
在frmmain 代码中 有 SetTabShow 一个过程 是为了打开子窗体,代码如下:

        private void SetTabShow(string tabName, string sfrmName)
        {
            bool isOpen = false;
            foreach (SuperTabItem item in superTabCtrMain.Tabs)
            {
                //已打开
                if (item.Name == tabName)
                {
                    superTabCtrMain.SelectedTab = item;
                    isOpen = true;
                    break;
                }
            }
            if (!isOpen)
            {
                //反射取得子窗体对象。
                object obj = Assembly.GetExecutingAssembly().CreateInstance("szhyglc." + sfrmName, false);
                //需要强转
                Form form = (Form)obj;
                //设置该子窗体不为顶级窗体,否则不能加入到别的控件中
                form.TopLevel = false;
                form.Visible = true;

                //form.AddOwnedForm = this;
                //布满父控件
                form.Dock = DockStyle.Fill;
                //创建一个tab
                SuperTabItem item = superTabCtrMain.CreateTab(tabName);
                //设置显示名和控件名
                item.Text = tabName;
                item.Name = tabName;
                //将子窗体添加到Tab中
                item.AttachedControl.Controls.Add(form);
                //选择该子窗体。
                superTabCtrMain.SelectedTab = item;
            }
        }

调用

SetTabShow("会员列表", "frmHy");

第二步 做一个委托

        public static frmmain m_frmmain;
        public frmmain()
        {
            m_frmmain = this;   //这是重点
            this.EnableGlass = false;
            InitializeComponent();
            //this.MinimumSize = new Size(1138, 757);
        }

第三步 子窗体关闭代码

    public class myvar
    {
        public static void TabClose(string tabName, SuperTabControl superTabCtrMain)
        {
            try
            {
                foreach (SuperTabItem item in superTabCtrMain.Tabs)
                {
                    //已打开
                    if (item.Name == tabName)
                    {
                        MessageBox.Show("准备关闭");
                        //superTabCtrMain.SelectedTab = item;
                        superTabCtrMain.CloseTab(item);
                        break;
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message,"QQ:4126488");
            }


        }
   }

调用

        private void buttonX1_Click(object sender, EventArgs e)
        {
            myvar.TabClose("会员列表", frmmain.m_frmmain.superTabCtrMain);

        }

转载请注明出处:
撰写人:张新宇
QQ:4126488

  • 1
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值