第5章Windows应用开发.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.6 多文档界面 (MDI) 多文档界面 (MDI)应用程序同时显示多个文档,每个文档显示在各自的窗口中。MDI 应用程序中常有包含子菜单的“窗口”菜单项,用于在窗口或文档之间进行切换。 5.6.1 创建 MDI 父窗体 多文档界面 (MDI) 应用程序MDI 父窗体是包含MDI 子窗口的窗体,在“Windows 窗体设计器”创建 MDI 父窗体很容易。首先创建 Windows 应用程序,在“属性”窗口中,将 IsMDIContainer 属性设置为 true,将该窗体指定为子窗口的 MDI 容器。注意,当在“属性”窗口中设置属性时,根据需要可将 WindowState 属性设置为 Maxmized,因为当父窗体最大化时操作 MDI 子窗口最为容易。另外,MDI 父窗体的边缘将采用系统颜色(在 Windows 系统控制面板中设置),而不采用Control.BackColor 属性设置的背景色。 将 MainMenu 组件从“工具箱”拖到窗体上,创建一个 Text 属性设置为“文件(F)”的顶级菜单项,且带有“新建(N)”和“关闭(C)”的子菜单项。再创建一个名为“窗口(W)”的顶级菜单项。第1个菜单将在运行时创建并隐藏菜单项,而第2个菜单将跟踪打开MDI 子窗口。此时,已创建了一个 MDI 父窗口。 5.6.1 创建 MDI 父窗体 按 F5 键运行该应用程序,如图5.16所示。 图5.16 运行结果 5.6.2 创建 MDI 子窗体 多文档界面 (MDI) 应用程序的基础是 MDI子窗体,因为它们是用户交互的中心。下面通过实例说明创建 MDI 子窗体的方法。 【例5.13】创建菜单结构中包含顶级菜单项“文件”和“窗口”及菜单项“新建”和“关闭”的 MDI 父窗体。 在“属性”窗口顶部的下拉列表中,选择与“窗口(W)”菜单对应的菜单项,然后将 MDIList 属性设置为 true。这将使“窗口”菜单能够维护打开的 MDI 子窗口的列表(活动子窗口旁有一个复选标记)。 在“解决方案资源管理器”中,右击该项目,指向“添加”,单击“Windows 窗体”,此窗体将作为 MDI 子窗体的模板。在“添加新项”对话框中,从“类别”窗格选择“本地项目项”,并从右侧窗格选择“Windows 窗体”。在“名称”框中,命名窗体 Form2。单击“打开”按钮将该窗体添加到项目中。“Windows 窗体设计器”打开,其中显示 Form2。 将 RichTextBox 控件从“工具箱”拖到窗体上。在“属性”窗口中,将 Anchor 属性设置为“Top, Left”,并将 Dock 属性设置为“Fill”,这样,即使调整 MDI 子窗体的大小,RichTextBox 控件也会完全填充该窗体的区域。 5.6.2 创建 MDI 子窗体 为“新建”菜单项创建 Click 事件处理程序,单击“新建”菜单项,创建新的 MDI 子窗体。在下面的示例中,事件处理程序处理 MenuItem2 的 Click 事件。 protected void MDIChildNew_OnClick(object sender, System.EventArgs e) { Form2 newMDIChild = new Form2(); // 设置子窗体的父窗体 new MDIChild.MDIParent = this; // 显示一个新窗体. newMDIChild.Show(); } 按 F5 键运行该应用程序。请注意,在“文件”菜单中选择“新建” 菜单项,可创建新的 MDI子窗体,该子窗体在“窗口”菜单中被跟踪。 5.6.3 确定活动的 MDI 子窗体 一个 MDI 应用程序可以有同一个子窗体的多个实例,通过ActiveMDIChild 属性,可以得到当前具有焦点的子窗体或返回最近活动的子窗体。当窗体上有数个控件时,通过ActiveMDIChild 属性,可以得到当前活动的子窗体上有焦点的控件。 假定有一个 MDI 父窗体 (Form1),它具有包含 RichTextBox 控件的一个或多个 MDI 子窗口。 将活动子窗体的活动控件的文本复制到剪贴板。 protected void mniCopy_Click (object sender, System.EventArgs e) { // 确定活动的子窗体. Form activeChild = this.ActiveMDIChild; // 如果有一个活动的子窗体,找到活动的控件 // 在这个例子里是 RichTextBox. if (activeChild != null

文档评论(0)

502992 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档