C#程序设计课件第10章_第1页
C#程序设计课件第10章_第2页
C#程序设计课件第10章_第3页
C#程序设计课件第10章_第4页
C#程序设计课件第10章_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第10章 MDI应用程序,一般情况下,编写Windows应用程序有三种方式:基于对话框的应用程序,它们给用户提供一个对话框,关在此对话框中显示了所有功能;单一文档界面应用程序(SDI),此应用程序显示给用户一个菜单、一个或多个工具栏和一个窗口来完成某些任务,如果需要创建一个新的任务,则需要再打开应用程序;多文档界面应用程序(MDI),它的执行方式与SDI相同,但在同一任务窗口中可以打开多个任务。 在本章节中我们将详细介绍在C#中如何创建多文档界面窗体(Multiple Document Interface,MDI)应用程序。同时完成一个完整的MDI应用程序的实例,将学习如何创建MDI父窗体(MDIFather)以及MDI子窗体(MDIChild)的其他相关窗体。另外,还将学习如何在MDI父窗体上添加菜单和其他控件,父窗体和子窗体之间合成菜单,并且创建上下文菜单(快捷菜单)。,2,本章学习要点,理解MDI应用程序的特征 组织MDI应用程序窗体之间的过程 理解MDI应用程序的标准窗体的作用 在MDI应用程序中集成菜单并创建上下文菜单 理解MDI应用程序的事件之间的关系 配置RichTextBox控件来显示自定义字体和颜色 使用RichTextBox控件读写文件 格式化一个RichTextBox控件实例 设置文本缩放 检测Web页的链接,3,10.1 解决方案,在MDI应用程序中,每一个新的窗口都出现在另一个称为父窗体或父窗口的窗口中。MDI应用程序不是C#所特有的。有许多软件都是MDI应用程序,例如我们平时使用的Microsoft Word、Excel等软件,是典型的MDI程序的代表。在本章中我们将完成一个完整的MDI应用程序,它类似于Microsoft Word具有简单的文档编辑和处理功能。,10.1.1 界面设计原则,由于本章完成的是一个MDI的字处理应用程序,它有着统一的界面设置原则,如果不了解Windows程序界面设计的原则,或者不熟悉界面编程,就难以设计和实现既符合一般标准又具有特色的界面。界面的设计具有一般性的原则,其中最重要的有: 保持界面的一致性 提供常用操作的快捷键 提供简单的错误处理 提供信息反馈 操作应该可逆 设计良好的联机帮助,4,10.2 实现MDI程序,从完整的解决方案中我们大致了解了实现程序的基本功能,还有更多隐藏的内容是我们看不到的,首先先来了解一下MDI应用程序的特点,接着我们就依据这些功能来逐步实现本章的MDI字处理程序程序,并完成这些隐藏任务来完善MDI字处理程序。,5,10.2.1 MDI程序特征,多文档界面上父窗体和子窗体组成,其中父窗体称为子窗体的容器,而子窗体显示各自文档,所有子窗体具有相同的功能。MDI应用程序特点还不止,下面列举一些显著的特点: 所有子窗体均显示在MDI父窗体的工作区中,用户可改变、移动子窗体的大小,但始终无法脱离父窗体。 当最小化子窗体时,它的图标将显示于MDI父窗体上而不是在任务栏中。当最小化MDI父窗体时,所有的子窗体也被最小化,只有MDI父窗体的图标出现在任务栏中。 当最大化一个子窗体时,所有子窗体都被最大化,当前子窗体的标题与MDI父窗体的标题一起显示在MDI父窗体的标题栏上。 MDI父窗体和子窗体都可以有各自的菜单,当子窗体加载时覆盖MDI父窗体的菜单。,6,10.3 标准窗体与MDI应用程序,MDI应用程序中的标准窗体显示为模态对话框,没有菜单。在本程序中关于窗体为模态对话框,在模态对话框显示时我们无法在对话框与程序之间进行焦点的切换,除非我们关闭模态对话框,焦点才会回到应用程序中。而非模态对话框显示时,我们可以任意在对话框和程序之间切换焦点,典型的模态地话框为【打开】和【另存为】对话框。,7,10.4 菜单和MDI应用程序,每一个完整的应用程序都包括了菜单这一部分内容,菜单不仅提供了在应用程序内进行导航(切换)的简单方式,还为处理应用程序提供了有用的工具,同时为用户提供了单击窗体上的按钮之外的方法来执行任务。菜单由显示为下拉式菜单的菜单栏组成包含菜单项和子菜单。在MDI应用程序中菜单具有某些特殊性,需要我们对其属性进行修改或添加代码完成具体功能,这里我们就为大家详细讲解MDI字处理程序中菜单的操作。,8,10.4.1 MDI程序菜单特征,解决方案中的MDI父窗体和子窗体都可以拥有自己的菜单系统。但是在默认情况下MDI程序运行时,如果子窗体包含有菜单,那么当子窗体被激活时,子窗体的菜单就会自动替换父窗口菜单;当子窗体被最小化时,在MDI父窗体里就会出现子窗体的图标。在MDI应用程序中,菜单具有以下独特的特征: 只有一个菜单栏出现在MDI父窗体标题栏下面。菜单栏显示MDI父窗体和子窗体的菜单。菜单栏从来不会出现在MDI子窗体的标题栏上面。 MDI父窗体的菜单在没有加载子窗体时出现。 当MDI父窗体的实例加载或者获得焦点时,父窗体的菜单合并到子窗体菜单中。合并的菜单出现在父窗体的标题栏下。稍后将讨论如何合并菜单即使用在应用程序中的所有MDI子窗体都图标化时也会显示。 从技术上讲,MDI应用程序中的标准窗体可以具有相关联的菜单。但是,标准窗体通常显示为模态对话框,不带有菜单,9,10.5 MDI窗体事件,当用户在MDI应用程序中的各个窗体之间导航时,Windows会触发各种事件。这事件我们在其他应用程序中也遇到过:例如,我们在关闭一个Word文档时它会提醒我们是否保存;在退出系统时会弹出对话框选择是不否退出等。这里列出一些在本章程序中用到的一些窗体事件: Closing事件 TextChanged事件,10,10.6 管理MDI子窗体,前面我们已经把本章MDI字处理程序的基本框架设置完毕,其中还有部分功能没有添加,这里我将详细讲解如何利用这些菜单去管理MDI的子窗体。包括了排列子窗体,利用菜单选择子窗体和格式化富文本框等功能。,11,10.6.1 排列子窗体,方法LayoutMdi应用于MDI父窗体,用于排列子窗体。枚举MdiLayout它有四个参数值分别体现了子窗体的不同排列形式。下面是它四个枚举值: ArrangeIcons Cascade TileHorizontal ileVertical,12,10.7 RichTextBox控件,本章MDI字处理程序中,我们用到了富文本框RichTextBox控件,它允许用户编辑具有标准的文件格式RTF的文件,并且具备读写RTF格式文件的能力。RTF格式的文件中嵌入了格式化指令,而富文本框并不显示这些指令,而是由控件实例解释这些指令来执行所需要的格式化任务,这里我们将详细为大家讲解何利用富文本框进行读写RTF格式的文件以及这些格式化命令,进一步完善MDI字处理程序的功能。,13,10.7.1 使用RichTextBox控件读写文件,RichTextBox通常用于提供文本操作和显示功能,本章中实现的MDI字处理程序的核心便是RichTextBox控件,它与TextBox控件共同派生于TextBoxBase类。RichTextBox控件除了执行TextBox控件的所有功能之外它还可以显示字体、颜色和链接,从文件加载文本和嵌入的图像,撤消和重复编辑操作以及查找指定的字符等功能。RichTextBox控件支持用来格式化文本的附加的属性和方法,下面我们列举出一些RichTextBox控件所支持的成员。 公共属性 公共方法 公共事件,14,10.7.2 格式化富文本框,RichTextBox控件提供许多可对控件内任何文本部分应用格式设置的属性,例如:字体、字型和颜色等。SelectionFont属性使你得以将文本以粗体或斜体显示。还可以使用此属性更改文本的大小和字样。SelectionColor属性使你得以更改文本的颜色。 若要更改文本的格式设置,必须首先选定此文本。只能为选定的文本分配字符格式或段落格式设置。对选定的文本内容进行设置后,在选定内容后输入的所有文本也用相同的设置进行格式设置,直到更改设置或选定控件文档的不同部分为止。 1设置颜色 2设置字体 3完成上下文菜单编辑功能,15,10.8 缩放,在使用Microsoft Word进行文档编辑时,可以随意高速文档显示比例。RichTextBox也提供了这种功能,ZoomFactor属性允许用户修改显示在RichTextBox控件实例中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论