首页 > 代码库 > 设计一个多文档界面(MDI)应用程序,可以实现打开、排列和关闭子窗口。

设计一个多文档界面(MDI)应用程序,可以实现打开、排列和关闭子窗口。

 

首先 :我们要知道什么是多文档界面(MDI)

理论上说是“在多文档窗口环境下进行开发设计的,这种多文档界面称为多文档界面(mdi)”

通俗 的一点,我们最常见到的Excel表格就是mdi

技术分享

[我个人理解的图是这样的]

 

开始实际操作:

1.打开2个窗体【Form2为主窗体,Form2_son为子窗体】

技术分享

2.在主窗体Form2中拖拉控件

MenuStrip(菜单栏)

技术分享

 技术分享

 

设置form2的IsMdiContainer=True

3.在子窗体Form2_son中拖拉控件

RichTextBox  (铺满窗口duck属性)

4.Form2中打代码

        private void 打开子窗口ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2_son myChild = new Form2_son();
            myChild.MdiParent = this;
            myChild.Show();
        }

1 //关闭当前活动的子窗体     
2  private void 关闭子窗口ToolStripMenuItem_Click(object sender, EventArgs e)
3         {
4             ActiveMdiChild.Close();
5         }
 private void 关闭所有子窗口ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (MdiChildren.Length > 0)
            {
                foreach (Form myForm in MdiChildren)
                {
                    myForm.Close();
                }
            }
        }  
//程序退出   
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }

  

 //窗体的排列是通过LayoutMdi()其中的参数是枚举值

MdiLayout.Cascade//层叠

MdiLayout.TileHorizontal//水平平铺

MdiLayout.TileVertical//垂直平铺

      private void 层叠ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.Cascade);
        }

        private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.TileHorizontal);
        }

  

 

设计一个多文档界面(MDI)应用程序,可以实现打开、排列和关闭子窗口。