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

Posted 未生1996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计一个多文档界面(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)应用程序,可以实现打开排列和关闭子窗口。的主要内容,如果未能解决你的问题,请参考以下文章

MDI多文档界面管理

Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)

MDI窗体应用

C/C++ Qt MdiArea 多窗体组件应用

mfc中MDI模式下实现单文档多视图多窗口

WinForm排列MDI子窗体