




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C# 中的MDI编程(1) 更多免费资源下载:/user/gouyueQQ223857666勾月,多文档界面就是所谓的MDI,他是从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,这是因为Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序。在视窗系统3.1版本中,MDI得到了更大范围的应用。其中系统中的程序管理器和文件管理器都是MDI程序。Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢。在Visual C#中,提供了为实现MDI程序设计的很多功能。本文就是通过一个具体的例子来详细的介绍在Visual C#中的MDI编程。一 程序设计及运行的环境:(1)视窗2000服务器版(2).Net FrameWork SDK Beta 2版二 程序设计的思路、主要步骤和实现方法:MDI编程主要就是要在主窗体中能够新建一个MDI窗体,并且能够对主窗体中的所有MDI窗体实现层叠、水平平铺和垂直平铺。虽然这些操作比较基本,但却是程序设计中的要点和重点。本文就按照上述功能的顺序来一一介绍。(1)首先要设定主窗体是一个MDI窗体的容器,因为只有如此才能够在此主窗体上面添加MDI窗体,从而实现对MDI编程,具体实现语句如下:this.IsMdiContainer = true ; (2)在主窗体上面新建一个MDI窗体。在程序中,新建一个MDI窗体的命令是通过一个菜单的事件来实现的。在处理新建一个MDI窗体事件中,关键是要设定此MDI窗体的父窗体。其实MDI窗体和别的窗体没有什么不同,不同点就在MDI窗体有上一级窗体,即父窗体,而其他窗体是没有的,具体实现语句如下: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 ) ;实现操作后具体如下图:图01:在主窗体中实现对MDI窗体的层叠操作,点击小图放大(4)实现对MDI窗体的水平平铺:要在主窗体实现MDI窗体水平平铺,也是通过LayoutMdi方法,此时所带的参数是MdiLayout.TileHorizontal,具体实现语句如下:private void TileH_Click ( object sender , EventArgs e )/ 实现对主窗体中的MDI窗体的水平平铺操作this.LayoutMdi ( MdiLayout.TileHorizontal ) ;实现操作后具体如下图:图02:在主窗体中实现对MDI窗体的水平平铺操作,点击小图放大(5)实现对MDI窗体的垂直平铺:要在主窗体实现MDI窗体垂直平铺,也是通过LayoutMdi方法,此时所带的参数是MdiLayout.TileVertical,具体实现语句如下:private void TileV_Click ( object sender , EventArgs e )/ 实现对主窗体中的MDI窗体的垂直平铺操作this.LayoutMdi ( MdiLayout.TileVertical ) ;实现操作后具体如下图:图03:在主窗体中实现对MDI窗体的垂直平铺操作,点击小图放大(6)在有些MDI程序,当新建一个MDI窗体以后,往往会在某些菜单项的下面生产一个以此MDI窗体的名称为名称的子菜单项。在其他语言中要实现这种功能,可能就要在某些主菜单项下动态的加入子菜单了。但是在Visual C#中实现此种功能,就显得比较简单的,只有在要加入的主菜单项下加入下面一句程序就可以了: WindowMenu.MdiList = true 本程序中,是在窗口主菜单项下面加入MDI窗体的子菜单项的。加入此语句后,程序运行界面具体如下图:图04:在主窗体中实现在新建一个MDI窗体后会在此主菜单项下显示存在的MDI窗体菜单项点击小图放大三. 程序源代码(mdi.cs)及编译方法:通过对程序设计中的难点介绍以后,就可以比较容易得到实现对上述MDI窗体处理的源程序代码(mdi.cs),具体如下:mdi.cs源程序代码:using System ;using System.Windows.Forms ;using System.ComponentModel ;using System.Drawing ;/ 导入在程序中用到的名称空间class MDIDemo : Formprivate 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 ( ) ) ;再经过以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 笑与健康教学课件
- 2025年石材、石料加工品及制品项目合作计划书
- 拆迁子女赠与协议书范本
- 童话课件教学课件
- 赞助农村协议书范本
- 施工酒后作业协议书范本
- 租赁纠纷和解协议书范本
- 医院返款协议书范本
- 看护孩子安全协议书范本
- 楼房拆迁协议书范本
- 客运驾驶员汛期安全培训
- 【1例心肌梗塞患者的PCI术后护理探究7800字(论文)】
- 干部基本信息审核认定表
- 采购管理中的创新与持续改进
- 乳腺穿刺活检术手术知情同意书
- 湖南省永州冷水滩区2021-2022学年七年级下学期期末语文试题答案
- (完整版)北京高考有机化学真题
- 威高胸腰椎微创脊柱治疗方案课件
- 装修公司销售部管理制度
- 后勤专业制度考试题库
- 思想道德与法治(继教)学习通课后章节答案期末考试题库2023年
评论
0/150
提交评论