Windows窗体(.NetFramework)知识汇总
Windows窗体可大致分为Form窗体和MDI窗体,Form窗体没什么好细说的,知识点总结都在思维导图里面了,下文将围绕MDI窗体来讲述。
MDI(MultipleDocumentInterface,多文档界面)窗体是一种特殊的窗体类型,它允许在一个主窗体中同时显示多个子窗体。以下是对WinformMDI窗体的详细介绍:
一、MDI窗体的基本概念
MDI窗体由一个父窗体和若干个子窗体组成。在MDI窗体中,起到容器作用的窗体被称为“父窗体”,而放到父窗体中的其他窗体则被称为“子窗体”或“MDI子窗体”。
二、MDI窗体的设置
要将一个窗体设置为MDI窗体,需要执行以下步骤:
设置父窗体:将窗体的IsMdiContainer属性设置为True。这可以通过在Windows窗体的属性窗口中设置,也可以通过代码设置。例如,在窗体加载事件Load中设置:this.IsMdiContainer=true;。添加子窗体:创建新的窗体作为子窗体。将子窗体的MdiPant属性设置为主窗体的实例,从而使其成为MDI子窗体。例如:childForm.MdiPant=this;显示子窗体:childForm.Show();三、MDI窗体的功能
MDI窗体提供了多种功能来管理和操作子窗体,包括:
窗口菜单:MDI窗体通常包括一个含有子菜单的“窗口”菜单项,用于在窗口之间进行切换。可以通过设置WindowMenu.MdiList=true;来实现在新建一个MDI窗体后,在此主菜单项下显示存在的MDI窗体菜单项。子窗体排列:MDI窗体允许对子窗体进行排列,包括层叠(Cascade)、水平平铺(TileHorizontal)和垂直平铺(TileVertical)。可以通过带有MdiLayout枚举的LayoutMdi方法来实现子窗体的排列。例如:this.LayoutMdi(MdiLayout.Cascade)实现层叠排列,this.LayoutMdi(MdiLayout.TileHorizontal)实现水平平铺排列,this.LayoutMdi(MdiLayout.TileVertical)实现垂直平铺排列。子窗体管理:MDI窗体可以管理子窗体的创建、显示、隐藏和关闭等操作。可以通过编程逻辑来控制子窗体的行为,如限制子窗体的数量、在关闭主窗体时关闭所有子窗体等。四、MDI窗体应用范例
以下是一个MDI窗体应用范例程序。
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceMDIFormTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoid水平平铺ToolStripMenuItem_Click(objectsender,EventArgse){LayoutMdi(MdiLayout.TileHorizontal);}privatevoid垂直平铺ToolStripMenuItem_Click(objectsender,EventArgse){LayoutMdi(MdiLayout.TileVertical);}privatevoid层叠排列ToolStripMenuItem_Click(objectsender,EventArgse){LayoutMdi(MdiLayout.Cascade);}privatevoidForm1_Load(objectsender,EventArgse){}privatevoid加载子窗体ToolStripMenuItem_Click(objectsender,EventArgse){Form2frm2=newForm2();frm2.MdiPant=this;frm2.Show();Form3frm3=newForm3();frm3.MdiPant=this;frm3.Show();Form4frm4=newForm4();frm4.MdiPant=this;frm4.Show();}}}
程序运行效果如下图所示:
主窗体
水平平铺子窗体
垂直平铺子窗体
层叠排列子窗体