【C#】【WinForm】MDI窗体

  • 【C#】【WinForm】MDI窗体已关闭评论
  • 101 次浏览
  • A+
所属分类:.NET技术
摘要

MDI窗体的相关学习使用1、设置MDI父窗体 在属性中找到IsMdiContainer选项,设置为True

MDI窗体的相关学习使用

1、设置MDI父窗体

【C#】【WinForm】MDI窗体

 在属性中找到IsMdiContainer选项,设置为True

2、添加MDI子窗体,在项目中依次选择添加->窗体,然后一直默认即可

【C#】【WinForm】MDI窗体

 添加后的项目目录(Form1为父窗口,Form2、Form3为子窗口)

【C#】【WinForm】MDI窗体

 3、在Form1.cs中,创建对应MDI子窗口的对象并调用显示出来

 1 namespace WindowsFormsApp1  2 {  3     public partial class Form1 : Form  4     {  5         public Form1()  6         {  7             InitializeComponent();  8         }  9  10         private void Form1_Load(object sender, EventArgs e) 11         { 12             Form form2 = new Form2(); 13             form2.Show(); 14             form2.MdiParent = this; 15             Form form3 = new Form3(); 16             form3.Show(); 17             form3.MdiParent = this; 18         } 19     } 20 }

保存运行后即可显示出所有子窗口。

 

4、将子窗口按照特定方式排列显示

所需控件(菜单和工具栏 -> Menu Strip)

在设计界面依次添加Items

【C#】【WinForm】MDI窗体

 将每个Items都双击依次,然后在Form1.cs文件中添加如下代码:

        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);         }

完整Form1.cs代码:

 1 using System;  2 using System.Collections.Generic;  3 using System.ComponentModel;  4 using System.Data;  5 using System.Drawing;  6 using System.Linq;  7 using System.Text;  8 using System.Threading.Tasks;  9 using System.Windows.Forms; 10  11 namespace WindowsFormsApp1 12 { 13     public partial class Form1 : Form 14     { 15         public Form1() 16         { 17             InitializeComponent(); 18         } 19  20         private void Form1_Load(object sender, EventArgs e) 21         { 22             Form form2 = new Form2(); 23             form2.Show(); 24             form2.MdiParent = this; 25             Form form3 = new Form3(); 26             form3.Show(); 27             form3.MdiParent = this; 28         } 29  30         private void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e) 31         { 32             LayoutMdi(MdiLayout.TileHorizontal); 33         } 34  35         private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e) 36         { 37             LayoutMdi(MdiLayout.TileVertical); 38         } 39  40         private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e) 41         { 42             LayoutMdi(MdiLayout.Cascade); 43         } 44     } 45 }

 

 

关于  Form.cs  Form1.Designer.cs  Form1.cs[设计]  这三个文件的作用:

Form1.cs[设计]为前端界面设计器,和QT中的Designer相同,通过图形化界面设计应用的展示效果,简化前端的工作量。

Form1.Designer.cs则是通过设计器设置后的界面后,同步生成对应的前端代码存放文件,主要用于定义窗体的布局、控件的位置和属性等

Form.cs则是用于后端业务处理,实现复杂的逻辑和功能,包含了窗体类的代码逻辑,例如控件的初始化、事件处理等。