现在的位置: 首页 > 综合 > 正文

c# mdi子窗体只实例化一个的方法

2013年01月28日 ⁄ 综合 ⁄ 共 820字 ⁄ 字号 评论关闭

 方法一:

        //判断MDI子窗体是否存在
        public static bool IsTheFormOpened(Form mainFrm ,string frmName)
        {
            Form[] tmpFrm = mainFrm.MdiChildren;
            foreach (Form myFrm in tmpFrm)
            {
                if (myFrm.Name == frmName)
                    return true;
            }
            return false;
        }  

        调用:

        if (!IsTheFormOpened(this, "BranchMain"))
            {
                BranchMain bm = new BranchMain();
                bm.WindowState = FormWindowState.Maximized;
                bm.MdiParent = this;
                bm.Show();
            }

方法二:单件模式

         在MDI子窗体中编写创建窗体对象的函数

         例如:

        private static WorkerMain worker;

        public static WorkerMain CreateForm()
        {
            if (worker == null || worker.IsDisposed)
            {
                worker = new WorkerMain();
            }
            return worker;
        }

抱歉!评论已关闭.