欢迎来到天天文库
浏览记录
ID:46371401
大小:3.21 MB
页数:30页
时间:2019-11-23
《第11章MDI窗体及菜单控件. - 幻灯片1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MDI窗体及菜单控件《.Net三层应用结构开发》第十一章目标了解MDI应用程序和SDI应用程序了解菜单和掌握菜单控件的使用了解为什么需要窗体传值掌握窗体间如何传值了解单例窗体的概念掌握代码编写单例窗体ContextMenuStrip控件编程演示应用程序示例单文档和多文档2-1这是Ann的一个测试如已有一个文本文件打开,在同一记事本应用程序中,不允许创建第二个文本文件新建一个记事本实例来打开第二个文本文件在SDI应用程序中一次只能打开一个文件单文档和多文档2-2在MDI应用程序中可以同时打开多个文件应用程序窗口文档窗口主窗体和子窗体3-2主窗体的特点:启动一个MDI应用程
2、序时,首先显示父窗体它是应用程序中所有其他窗口的容器每个应用程序界面都只能有一个MDI父窗体在任何指定的时间都可以打开多个子窗体任何MDI子窗体都不能移出MDI框架区域关闭MDI父窗体则自动关闭所有打开的MDI子窗体创建MDI窗体TestFormobjChild=newTestForm();objChild.MdiParent=this;objChild.Show();创建MDI窗体步骤:将IsMdiContainer属性设置为True选择“项目”“添加Windows窗体”添加给定的代码,将TestForm设置为子窗体主窗体和子窗体3-3属性说明MdiChildren
3、获得MDI子窗体集合ActiveMdiChild用于获取当前活动的多文档界面(MDI)子窗体方法说明ActivateMdiChild用于激活子窗体LayoutMdi排列MDI父窗体中的多文档界面(MDI)子窗体MDI应用程序的属性、方法和事件主窗体和子窗体3-3事件说明Closed由用户或窗体的Close方法关闭窗体后,发生该事件Closing正在关闭窗体时,发生该事件MdiChildActivate在MDI应用程序中激活或关闭多文档界面(MDI)子窗体时,触发该事件MDI应用程序的属性、方法和事件如果窗体为MDI父窗体,则在触发MDI父窗体的Closing事件之前,将
4、触发所有MDI子窗体的Closing事件。另外,在触发MDI父窗体的Closed事件之前,将触发所有MDI子窗体的Closed事件主窗体和子窗体3-3MDI父窗体Closing事件的调用顺序:MDI子窗体激活和去激活窗口显示活动窗口this.ActivateMdiChild(frmChild);激活窗口MessageBox.Show(Convert.ToString(this.ActiveMdiChild));显示活动窗口的名称活动窗口排列子窗口MDILayout枚举的成员成员名称说明ArrangeIcons在MDI父窗体的客户端区内排列所有MDI子窗体的图标Casca
5、de在MDI父窗体的客户端区内层叠所有MDI子窗口TileHorizontal在MDI父窗体的客户端区内水平平铺所有MDI子窗口TileVertical在MDI父窗体的客户端区内垂直平铺所有MDI子窗口菜单和菜单组件菜单提供了将命令分组的一致方法用户易于访问支持使用访问键启用键盘快捷方式一个菜单可以带有若干子菜单菜单是程序中显示一个选项列表的图形元素在设计阶段将MainMenu组件添加到窗体上菜单类型3-1上下文菜单Menu类位于System.Windows.Forms命名空间MainMenu控件包含多个MenuItem控件操作步骤主要属性Items集合代码添加//菜单
6、项ToolStripMenuItemtoolstrip=newToolStripMenuItem("菜单一");//添加到菜单this.menuStrip1.Items.Add(toolstrip);//添加子项toolstrip.DropDownItems.Add("子菜单");点击事件双向传值解决方案:使用静态变量这个最简单,只要把变量描述成static就可以了,在Form2中直接引用Form1的变量,代码如下:在Form1中定义一个static变量publicstaticinti=9;Form2中取得Form1的i值如下:Form1.i.ToString();假如
7、Form1取得Form2值,则在Form2中定义publicstatic变量,Form2.变量取得Form2变量值窗体一传值给窗体二解决方案:用构造函数Form1创建Form2,同时传值:Form2temp=newForm2(9);temp.Show();Form2的构造函数这样写:publicForm2(inti){InitializeComponent();textBox1.Text=i.ToString();}窗体二传值给窗体一解决方案:利用委托Form2中先定义一个delegatepublicdelegatevoidreturnv
此文档下载收益归作者所有