WinForm中的单键模式

在WinForm中经常用到MDI容器。

MDI容器就是所谓的多文档界面。

不过我们实际应用中一般只用到一个父容器,以及在同一时间只能有一个子窗体。


就像上图一样。

单键模式

public void ShowChildForm<T>()
        {
            //通过数据类型创建泛型对象
            Form newForm = (Form)Activator.CreateInstance(typeof(T));

            bool b1 = true;//默认该窗体不存在
            foreach (Form frm in this.MdiChildren)
            {
                if (frm.GetType()==newForm.GetType())
                {
                    frm.Activate();
                    b1 = false;
                }
            }
            if (b1)
            {
                newForm.MdiParent = this;
                newForm.Show();
            }
        }

只有一个活动子窗体

<span style="font-size:18px;">public bool ShowOnlyOne()
        {
            bool b1 = true;
            if (this.MdiChildren.Length == 0)
            {
                b1 = true;
            }
            else
            {
                b1 = false;
            }
            return b1;
        }</span>

调用

<span style="font-size:18px;"> private void 借阅ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (ShowOnlyOne())
            {
              ShowChildForm<BookBorrow>();
            }
        } </span>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章