第11章MDI窗体及菜单控件. - 幻灯片1

上传人:沈*** 文档编号:244296497 上传时间:2024-10-03 格式:PPT 页数:30 大小:3.21MB
返回 下载 相关 举报
第11章MDI窗体及菜单控件. - 幻灯片1_第1页
第1页 / 共30页
第11章MDI窗体及菜单控件. - 幻灯片1_第2页
第2页 / 共30页
第11章MDI窗体及菜单控件. - 幻灯片1_第3页
第3页 / 共30页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MDI,窗体及菜单控件,.Net,三层应用结构开发,第十一章,目标,了解,MDI,应用程序和,SDI,应用程序,了解菜单和掌握菜单控件的使用,了解为什么需要窗体传值,掌握窗体间如何传值,了解单例窗体的概念,掌握代码编写单例窗体,ContextMenuStrip,控件编程,演示应用程序示例,单文档和多文档,2-1,这是,Ann,的一个测试,如已有一个文本文件打开,在同一记事本应用程序中,不允许创建第二个文本文件,新建一个记事本实例来打开第二个文本文件,在,SDI,应用程序中一次只能打开一个文件,单文档和多文档,2-2,在,MDI,应用程序中可以同时打开多个文件,应用程序窗口,文档窗口,主窗体和子窗体,3-2,主窗体的特点:,启动一个,MDI,应用程序时,首先显示父窗体,它是应用程序中所有其他窗口的容器,每个应用程序界面都只能有一个,MDI,父窗体,在任何指定的时间都可以打开多个子窗体,任何,MDI,子窗体都不能移出,MDI,框架区域,关闭,MDI,父窗体则自动关闭所有打开的,MDI,子窗体,创建,MDI,窗体,TestForm,objChild,=new,TestForm,();,objChild.MdiParent,=this;,objChild.Show,();,创建,MDI,窗体步骤:,将,IsM,di,Container,属性设置为,True,选择“项目”,“,添加,Windows,窗体”,添加给定的代码,将,TestForm,设置为子窗体,主窗体和子窗体,3-3,属性,说明,MdiChildren,获得,MDI,子窗体集合,ActiveMdiChild,用于获取当前活动的多文档界面,(MDI),子窗体,方法,说明,ActivateMdiChild,用于激活子窗体,LayoutMdi,排列,MDI,父窗体中的多文档界面,(MDI),子窗体,MDI,应用程序的属性、方法和事件,主窗体和子窗体,3-3,事件,说明,Closed,由用户或窗体的,Close,方法关闭窗体后,发生该事件,Closing,正在关闭窗体时,发生该事件,MdiChildActivate,在,MDI,应用程序中激活或关闭,多文档界面,(MDI),子窗体时,触发该事件,MDI,应用程序的属性、方法和事件,如果窗体为,MDI,父窗体,则在触发,MDI,父窗体的,Closing,事件之前,将触发所有,MDI,子窗体的,Closing,事件。另外,在触发,MDI,父窗体的,Closed,事件之前,将触发所有,MDI,子窗体的,Closed,事件,主窗体和子窗体,3-3,MDI,父窗体,Closing,事件的调用顺序:,MDI,子窗体,激活和去激活窗口,显示活动窗口,this.ActivateMdiChild(frmChild,);,激活窗口,MessageBox.Show(Convert.ToString(this.ActiveMdiChild,);,显示活动窗口的名称,活动窗口,排列子窗口,MDILayout,枚举的成员,成员名称,说明,ArrangeIcons,在,MDI,父窗体的客户端区内排列所有,MDI,子窗体的图标,Cascade,在,MDI,父窗体的客户端区内层叠所有,MDI,子窗口,TileHorizontal,在,MDI,父窗体的客户端区内水平平铺所有,MDI,子窗口,TileVertical,在,MDI,父窗体的客户端区内垂直平铺所有,MDI,子窗口,菜单和菜单组件,菜单提供了将命令分组的一致方法,用户易于访问,支持使用访问键启用键盘快捷方式,一个菜单可以带有若干子菜单,菜单是程序中显示一个选项列表的图形元素,在设计阶段将,MainMenu,组件添加到窗体上,菜单类型,3-1,上下文菜单,Menu,类位于,System.Windows.Forms,命名空间,MainMenu,控件包含多个,MenuItem,控件,操作步骤,主要属性,Items,集合,代码添加,/,菜单项,ToolStripMenuItem,toolstrip,=new,ToolStripMenuItem,(,菜单一,);,/,添加到菜单,this.menuStrip1.Items.Add(toolstrip);,/,添加子项,toolstrip.DropDownItems.Add,(,子菜单,);,点击事件,双向传值,解决方案:使用静态变量,这个最简单,只要把变量描述成,static,就可以了,在,Form2,中直接引用,Form1,的变量,代码如下:,在,Form1,中定义一个,static,变量,public static,int,i=9;,Form2,中取得,Form1,的,i,值如下:,Form1.i.ToString();,假如,Form1,取得,Form2,值,则在,Form2,中定义,public static,变量,,Form2.,变量取得,Form2,变量值,窗体一传值给窗体二,解决方案:用构造函数,Form1,创建,Form2,,同时传值:,Form2 temp=new Form2(9);,temp.Show,();,Form2,的构造函数这样写:,public Form2(,int,i),InitializeComponent,();,textBox1.Text=,i.ToString,();,窗体二传值给窗体一,解决方案:利用委托,Form2,中先定义一个,delegate,public delegate void,returnvalue,(,int,i);,public,returnvalue,ReturnValue,;,Form2,中的,button,按钮代码如下:,private void button1_Click(object sender,System.EventArgs,e),if(,ReturnValue,!=null),ReturnValue,(8);/,触发事件,传递,8,窗体二传值给窗体一,解决方案:利用委托,Form2 temp=new Form2();,temp.ReturnValue,=new temp.Form2.returnvalue(,showvalue,);,temp.Show,();,private void,showvalue,(,int,i),textBox1.Text=,i.ToString,();,点击,form2,的,button,,,form1,中的,textbox,中的值就会相应变化。,单例窗体,场景:用户登录窗体,除了在第一次登录时要用到,在每次切换用户时都要用到,普通窗体:每一次都要构造新的窗体实例,占用较多资源,单例窗体:确保系统中只能有一个此窗体的实例,每次都使用相同的窗体实例,作用:,控制资源的使用,单例窗体,单例窗体代码(一),static,SingletonForm,login=,null,;,public,static,SingletonForm,CreateForm,(),if,(login=,null,)login=,new,SingletonForm,();,return,login;,/,私有构造函数,避免客户随意创建新的窗体实例,/,客户只能通过,CreateForm,得到同一个窗体实例,private,SingletonForm,(),InitializeComponent,();,单例窗体代码(二),/,窗体关闭时释放资源,private void,SingletonForm_Closing(object,sender,System.ComponentModel.CancelEventArgs,e),login=null;,调用单例窗体,SingletonForm,f=,SingletonForm.CreateForm,();,f.Show,();,显示另一窗体,非模态窗体:允许用户在当前程序中切换到其他窗口,被调用的窗体类,窗体实例,=new,被调用的窗体类,();,窗体实例,.Show();,private void,cmdShow_Click(object,sender,System.EventArgs,e),frmA,A=new,frmA,();,A.Show,();,显示另一窗体,模态窗体:用户不能在各个窗口间切换,被调用的窗体类,窗体实例,=new,被调用的窗体类,();,窗体实例,.,ShowDialog,();,private void,cmdShow_Click(object,sender,System.EventArgs,e),frmA,A=new,frmA,();,A.ShowDialog,();,控件进阶,快捷菜单控件,ContextMenuStrip,:快捷菜单控件,为控件指定快捷菜单:,ContextMenuStrip,属性,显示与控件关联的菜单,ContextMenuStrip,属性和方法,属性,说明,DisplayStyle,指定是否显示图像和文本,Image,显示在菜单项上的图像,Text,显示在菜单项上的文本,方法,说明,Click,单击事件,单击菜单项时发生,ContextMenuStrip,控件的主要属性和方法,总结,窗体传值有三种方式:静态变量、构造函数、委托,单例窗体:能且只能创建一个实例的窗体,单文档界面的某一时刻只能打开一个文档,多文档界面允许同时打开多个文档,MDI,应用程序由一个,MDI,父窗体和一个或多个子窗体构成,菜单是程序中显示一个选项列表的图型元素,它提供将命令分组的方法和用户对其访问的简单途径,上下文菜单用于使用户通过单击鼠标右键访问常用的命令,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!