标签:dll 主程序 名称 程序代码 ipa dig numa shel file
public Form1() { InitializeComponent(); this.IsMdiContainer = true; }
我是直接把this.IsMdiContainer = true ;写在窗体的构造函数中,你也可以写的form_load函数中。
private void New_Click ( object sender , EventArgs e )//这是一个菜单的事件 { Form frmTemp = new Form ( ) ; //新建一个窗体 frmTemp.MdiParent = this ; //定义此窗体的父窗体,从而此窗体成为一个MDI窗体 frmTemp.Text = "窗体0" + FormCount.ToString ( ) ; //设定MDI窗体的标题 FormCount++ ; frmTemp.Show ( ) ; //把此MDI窗体显示出来 }
(3)实现对MDI窗体的层叠:
对于在主窗体中实现对MDI窗体的层叠操作,在主程序中,是通过一个方法来实现的,这个方法就是LayoutMdi,他所带的参数是MdiLayout.Cascade,具体实现语句如下:
private void Cascade_Click ( object sender , EventArgs e ) //实现对主窗体中的MDI窗体的层叠操作 { this.LayoutMdi ( MdiLayout.Cascade ) ; }
实现操作后具体如下图:
this.LayoutMdi ( MdiLayout.TileHorizontal ) ;
this.LayoutMdi ( MdiLayout.TileVertical ) ;//实现对主窗体中的MDI窗体的垂直平铺操作
using System ; using System.Windows.Forms ; using System.ComponentModel ; using System.Drawing ; //导入在程序中用到的名称空间 class MDIDemo : Form { private static int FormCount = 1 ; //定义此常量是为了统计MDI窗体数目, MainMenu mnuMain = new MainMenu ( ) ; MenuItem FileMenu ; MenuItem NewMenu ; MenuItem ExitMenu ; MenuItem WindowMenu ; public MDIDemo ( ) { this.IsMdiContainer = true ; this.Text = "MDI演示程序" ; FileMenu = new MenuItem ( ) ; FileMenu.Text = "文件" ; WindowMenu = new MenuItem ( ) ; WindowMenu.Text = "窗口(&W)" ; WindowMenu.MenuItems.Add ( "窗体层叠(&C)" , new EventHandler ( Cascade_Click ) ) ; WindowMenu.MenuItems.Add ( "水平平铺(&H)" , new EventHandler ( TileH_Click ) ) ; WindowMenu.MenuItems.Add ( "垂直平铺(&V)" , new EventHandler ( TileV_Click ) ) ; WindowMenu.MdiList = true ; //这一句比较重要,有了这一句就可以实现在新建一个MDI窗体后会在此主菜单项下显示存在的MDI窗体菜单项 NewMenu = new MenuItem ( ) ; NewMenu.Text = "新建窗体(&N)" ; NewMenu.Click += new EventHandler ( New_Click ) ; ExitMenu = new MenuItem ( ) ; ExitMenu.Text = "退出(&X)" ; ExitMenu.Click += new EventHandler ( Exit_Click ) ; FileMenu.MenuItems.Add ( NewMenu ) ; FileMenu.MenuItems.Add ( new MenuItem ( "-" ) ) ; FileMenu.MenuItems.Add ( ExitMenu ) ; mnuMain.MenuItems.Add ( FileMenu ) ; mnuMain.MenuItems.Add ( WindowMenu ) ; this.Menu = mnuMain ; } private void Cascade_Click ( object sender , EventArgs e ) //实现对主窗体中的MDI窗体的层叠操作 { this.LayoutMdi ( MdiLayout.Cascade ) ; } private void TileH_Click ( object sender , EventArgs e ) //实现对主窗体中的MDI窗体的水平平铺操作 { this.LayoutMdi ( MdiLayout.TileHorizontal ) ; } private void TileV_Click ( object sender , EventArgs e ) //实现对主窗体中的MDI窗体的垂直平铺操作 { this.LayoutMdi ( MdiLayout.TileVertical ) ; } private void New_Click ( object sender , EventArgs e ) { Form frmTemp = new Form ( ) ; //新建一个窗体 frmTemp.MdiParent = this ; //定义此窗体的父窗体,从而此窗体成为一个MDI窗体 frmTemp.Text = "窗体0" + FormCount.ToString ( ) ; //设定MDI窗体的标题 FormCount++ ; frmTemp.Show ( ) ; //把此MDI窗体显示出来 } private void Exit_Click ( object sender , EventArgs e ) { this.Dispose ( ); Application.Exit ( ) ; } public static void Main ( ) { Application.Run ( new MDIDemo ( ) ) ; } }
再经过以下编译命令编译过以后,就可以得到执行程序:
csc /t:winexe /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll mdi.cs
四.总结:
本文主要是介绍如何用Visual C#来实现对MDI窗体的编程。即:新建MDI窗体、MDI窗体层叠、MDI窗体水平平铺、MDI窗体的垂直平铺。通过上述介绍,可见,在Visual C#中处理MDI还是相当比较简单的。
不过说实现在我不建议大家这样实现了,而是喜欢使用Tabcontrol的方法,这样容易控件,而且可以达到多任务,多操作的效果,也是目前几乎所有浏览器都采用的方法
标签:dll 主程序 名称 程序代码 ipa dig numa shel file
原文地址:http://www.cnblogs.com/mq0036/p/6298420.html