Windows程序设计案例教程》课件示例程序答案 第25讲 MDI窗体.pptVIP

Windows程序设计案例教程》课件示例程序答案 第25讲 MDI窗体.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 教学目标 理解MDI窗体的概念 掌握MDI主窗体的设计方法 掌握判别MDI子窗体实例存在性的方法 掌握MDI父窗体和子窗体菜单合并的处理方法 掌握MDI子窗体在父窗体中排列方式的控制方法 完成MDI窗体实例的程序编写 教学内容 一、MDI窗体的特性 二、MDI窗体的设计过程 三、MDI窗体的菜单处理 四、MDI窗体的显示控制 MDI窗体设计 C#允许在单个容器窗体中创建包含多个子窗体的多文档界面(MDI)。多文档界面的典型例子是Microsoft Office中的Word和Excel,在那里允许用户同时打开多个文档,每个文档占用一个窗体,用户可以在不同的窗体间切换,处理不同的文档。 一、MDI窗体的特性 在项目中使用MDI窗体时,通常将一个MDI容器窗体作为父窗体,父窗体可以将多个子窗体包容在它的工作区之中。MDI父窗体与其子窗体之间表现出如下的特性: MDI的容器窗体(父窗体)必须且只能有一个,它只能当容器使用,其客户区用于显示子窗体,客户区不能接受键盘和鼠标事件。 不要在容器窗体的客户区加入控件,否则那些控件会显示在子窗体中。 容器窗体的框架区可以有菜单、工具栏和状态栏等控件。 子窗体可以有多个,各个子窗体不必相同。 子窗体被显示在容器窗体的客户区之中,子窗体不可能被移出容器窗体的客户区之外。 子窗体被最小化后,其图标在容器窗体的底部,而不是在任务栏中。 容器窗体被最小化后,子窗体随同容器窗体一起被最小化在任务栏中。 容器窗体被还原后,子窗体随同容器窗体一起还原,并保持最小化之前的状况。 子窗体可以单独关闭,但若关闭容器窗体,子窗体随同容器窗体一起被关闭。 子窗体可以有菜单,但子窗体显示后,其菜单被显示在容器窗体上。 二、MDI窗体的设计过程(1/2) 1、MDI容器窗体 只要将窗体的IsMdiContainer属性设置为true,它就是容器窗体。为此在窗体的Load事件中加入以下语句就是。 this.IsMdiContainer=true; 容器窗体在显示后,其客户区是凹下的,等待子窗体显示在下凹区。不要在容器窗体的客户区设计任何控件。 二、MDI窗体的设计过程(2/2) 2、MDI子窗体 MDI子窗体就是一般的窗体,其上可以设计任何控件,此前设计过的任何窗体都可以作为MDI子窗体。 只要将某个窗体实例的MdiParent属性设置到一个MDI父窗体,它就是那个父窗体的子窗体,语法为: 窗体实例名.MdiParent=父窗体对象; 例如,下一段代码编写在一个MDI父窗体的某个事件处理程序中,创建一个子窗体实例formChild1并将其显示在MDI父窗体的客户区中: FormChild formChild1=new FormChild(); formChild1.MdiParent=this; formChild1.Show(); 其中窗体类FormChild是一个一般的普通窗体。 三、MDI窗体的菜单处理(1/2) 可以分别为MDI父窗体和子窗体设计菜单。父窗体显示时,会显示自己的菜单。当子窗体显示在MDI父窗体中时,会将当前活动的子窗体的菜单显示在父窗体上,子窗体的菜单项与父窗体的菜单项合并共同组成MDI父窗体的菜单。在默认的情况下,子窗体的菜单被排列的父窗体的菜单后面。 通过设置各个菜单项的MergeOrder属性和MergeType属性,可以控制父窗体菜单与子窗体菜单合并组成的新菜单的顺序和菜单的组合方式。 MergeOrder属性 菜单项的MergeOrder属性决定菜单项被组合到新菜单中的排列位置,这个属性值是一个整型数。所有菜单项的MergeOrder值不必连续,只需要能区分出大小就行。 三、MDI窗体的菜单处理(2/2) MergeType属性 菜单项的MergeType属性决定菜单项被组合到新菜单中的组合形式,这个属性值是MenuMerge类型的枚举量,这些枚举量的含义如下表。 菜单项的MenuMerge枚举 四、MDI窗体的显示控制(1/4) 1、在MDI父窗体中显示子窗体 通常将MDI父窗体作为项目的主窗体,用户登陆后这个窗体就被启动。在MDI父窗体中显示子窗体的方法很简单,创建任何一个窗体的实例,指定本窗体为它的父窗体,就可以将这个实例显示在MDI父窗体中。例如在MDI父窗体中的第一个菜单项单击代码中将本窗体设置为子窗体实例formChild1的父窗体。 private void menuItem1_Click(object sender, System.Eve

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档