关于c# MDI(Multiple Document Interface)多文档窗体的随手笔记
在 Windows 窗体应用程序中,经常会在一个窗体中打开另一个窗体,那做要怎么做呢?这就需要用到我们的多文档窗体(MDI)控件了。那具体该怎么做呢?其实很简单。如下:
一、MDI基础应用
第一步,先把窗体的IsMdiContainer属性改为true
1、你可以直接在窗体上右键点击属性,在里面直接修改

2、或者,你也可以在窗体上右键查看代码(F7)在窗体方法中添加如下代码:
this.IsMdiContainer = true;
第二步,我们需要先给窗体添加一个菜单栏控件(MenuStrip),添加的方法步骤如下:
1、打开你的工具类直接将MenuStrip控件拖入窗体中
2、直接在控件后面建人菜单栏名称
第三步,在窗体双击MenuStrip控件自动生成一个对应的事件在事件里写上如下代码:
//创建一个form窗体
Form f = new Form();
//定义此窗体的父窗体,从而此窗体成为一个MDI窗体
f.MdiParent = this;
//设定MDI窗体的标题,这里需要注意,你要先声明一个全局变量 i 。
f.Text = "窗体" + (i++);
//把此MDI窗体显示出来
f.Show();
这里先看看运行结果,如图:
二、MDI布局方式
MDI布局方式有三种:水平平铺,垂直平铺,层叠排列(默认)
通过使用带有MdiLayout枚举的LayoutMdi方法来排列多文档界面父窗体中的子窗体。
语法如下:
public void LayoutMdi (MdiLayout value)
1、水平平铺示例
LayoutMdi(MdiLayout.TileHorizontal);

2、垂直平铺示例
LayoutMdi(MdiLayout.TileVertical);

3、层叠排列
LayoutMdi(MdiLayout.Cascade);

完整代码
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 dome2
{
public partial class Form1 : Form
{
int z = 1;
public Form1()
{
InitializeComponent();
this.IsMdiContainer = true;
}
private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
Console.WriteLine("你点击了打开文件菜单");
//创建一个form窗体
Form f = new Form();
//定义此窗体的父窗体,从而此窗体成为一个MDI窗体
f.MdiParent = this;
//设定MDI窗体的标题
f.Text = "窗体" + (z++);
//把此MDI窗体显示出来
f.Show();
}
private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical);
}
private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade);
}
}
}
白瞟不好,点个赞再走。哈哈哈
这篇博客介绍了如何在c#中实现MDI(Multiple Document Interface)多文档窗体,包括设置IsMdiContainer属性,添加菜单栏控件,以及MDI子窗体的水平平铺、垂直平铺和层叠排列三种布局方式的代码示例。
多文档窗体的随手笔记&spm=1001.2101.3001.5002&articleId=105720507&d=1&t=3&u=1298cfc07ecf4ca2b60f289f2b46b06d)

被折叠的 条评论
为什么被折叠?



