MDI 窗口的创建

Posted Jerron Lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDI 窗口的创建相关的知识,希望对你有一定的参考价值。

1、创建MDI 的父窗口 FormMain

设置窗口的IsMDIContainer 的属性为True

 

 

2、创建MDI 的子窗口

在“添加新项”对话框中,选择“Windows 窗体”(在 Visual Basic 中或 Visual C# 中)或从“模板”窗格中选择“Windows 窗体应用程序 (.NET)”(在 Visual C++ 中)。 在“名称”框中,将窗体命名为 Form2。 单击“打开”按钮,将窗体添加到项目中。

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MDI
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
            
        }

        private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form fr1 = new Form();
            fr1.MdiParent = this;
            fr1.Show();
        }

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormMDI1 frmMDI1 = new FormMDI1();
            frmMDI1.MdiParent = this;
            frmMDI1.Show();

            FormMDI2 frmMDI2 = new FormMDI2();
            frmMDI2.MdiParent = this;
            //frmMDI2.Owner = this;
            frmMDI2.Show();

            FormMDI3 frmMDI3 = new FormMDI3();
            frmMDI3.MdiParent = this;
            frmMDI3.Show();
        }

        private void FiletoolStripMenuItem1_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.Cascade);
        }

        private void NewStripMenuItem2_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileHorizontal);
        }

        private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileVertical);
        }

        private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }
    }
}

 

备注:此程序创建了三个MDI 的子窗口,通过菜单栏的打开同时显示三个子窗口,使用窗口布局菜单切换MDI 子窗口的布局

 

以上是关于MDI 窗口的创建的主要内容,如果未能解决你的问题,请参考以下文章

MDI 窗口的创建

MDI 子窗口创建失败

我使用vc++编程,我使用RegisterClassEx注册了窗口类,怎么用CreateWindow创建该类的MDI窗口?

2015.12.14 MDI(多文档窗口结构)设置基本解决,折腾一天,部分解决存在已久的问题。但效果仍不如临时航线的MDI窗体结构。

带有 OpenGL 的 Qt MDI 应用程序:如何获取有效的屏幕截图?

重置 mdi 子视图位置