vb的用户界面(一)

界面样式

如果使用过基于 Windows 的应用程序,也许已经注意到不是所有用户界面看上去或操作起来都一样。用户界面样式主要有两种:单文档界面 (SDI) 和多文档界面 (MDI)。SDI 界面的一个示例就是 Microsoft Windows 中的WordPad(记事本)应用程序(图 6.1)。在 WordPad 中,只能打开一个文档,想要打开另一个文档时,必须先关上已打开的文档。

象Microsoft Excel和Microsoft Word for Windows这样的应用程序就是MDI界面;它们允许同时显示多个文档,每一个文档都显示在自己的窗口中(图 6.2)。按照是否包含有能在窗口或文档之间进行切换的子菜单的Windows菜单项,就能识别出 MDI 应用程序。
要决定哪种界面样式最好,需要看应用程序的目的。一个处理保险索赔的应用程序可能要用多文档界面MDI样式,一个职员很可能会同时处理一个以上索赔,或者需要对两个索赔进行比较。另一方面,日历程序最好设成SDI单文档界面)样式,因为不大需要同时打开一个以上日历;在极少的情况下,可以再打开一个单文档界面应用程序的实例。

SDI样式更常用,《程序员指南》中的大多数实例都采用SDI应用程序。关于创建MDI应用程序有一些需要单独考虑的问题和技巧,放在本章后面“多文档界面 (MDI) 应用程序”一节。
除了以上两个最常用的界面样式SDI与MDI外,第三种界面样式变得越来越流行,这就是资源管理器样式的界面(图 6.3)。资源管理器样式界面是包括有两个窗格或者区域的一个单独的窗口, 通常是由左半部分的一个树型的或者层次型的视图和右半部分的一个显示区所组成,如在MicrosoftWindows的资源管理器中所见到的那样。这种样式的界面可用于定位或浏览大量的文档、图片或文件。 除了本章所附的MDI与 SDI 应用程序示例,实用程序向导还提供了一种比较界面样式差别的方法。可以用向导来为每一种样式生成一个框架,然后观察它生成的窗体与代码。

详细信息 要了解更多的关于MDI应用程序的知识,请参阅“多文档界面 (MDI) 应用程序”一节。有关窗体使用的基础,请参阅第三章“窗体、控件与菜单”。有关访问实用程序向导的信息,请参阅第四章“工程的管理”中“使用向导和外接程序”一节。

多文档界面 (MDI) 应用程序

多文档界面 (MDI) 允许创建在单个容器窗体中包含多个窗体的应用程序。像Microsoft Excel 与 Microsoft Word for Windows 这样的应用程序就具有多文档界面。
MDI 应用程序允许用户同时显示多个文档,每个文档显示在它自己的窗口中。文档或子窗口被包含在父窗口中,父窗口为应用程序中所有的子窗口提供工作空间。例如:Microsoft Excel 允许创建并显示不同样式的多文档窗口。每个子窗口都被限制在 Excel 父窗口的区域之内。当最小化 Excel时,所有的文档窗口也被最小化,只有父窗口的图标显示在任务栏中。子窗体就是 MDIChild 属性设置为 True 的普通窗体。一个应用程序可以包含许多相似或者不同样式的MDI子窗体。
在运行时,子窗体显示在MDI父窗体工作空间之内(其区域在父窗体边框以内及标题与菜单栏之下)。当子窗体最小化时,它的图标显示在MDI窗体的工作空间之内,而不是在任务栏中,如图 6.4 所示。

注意 一个应用程序也可以包括标准的、不是包含在MDI窗体之内的非MDI 窗体。MDI应用程序中标准窗体的典型用法是显示 模式的对话框。
MDI窗体相似于具有一个限制条件的普通窗体。除非控件具有 Align 属性(如 PictureBox 控件)或者具有不可见界面(如 Timer 控件),否则不能将控件直接放置在MDI窗体上。

创建MDI应用程序
使用下列步骤来创建MDI窗体及其子窗体。
要创建MDI应用程序,请按照以下步骤执行:
1. 创建MDI窗体。
从“工程”菜单中选取“添加MDI窗体”。
注意 一个应用程序只能有一个MDI窗体。如果工程已经有了一个 MDI窗体,则该“工程”菜单上的“添加MDI窗体”命令就 不可使用。
2. 创建应用程序的子窗体。
要创建一个MDI子窗体,先创建一个新窗体(或者打开一个存在的窗体),然后把它的 MDIChild 属性设为 True。

设计时使用MDI子窗体
在设计时,子窗体不是限制在MDI窗体区域之内。可以添加控件、设置属性、编写代码以及设计子窗体功能,就像在其它 Visual Basic 窗体中做的那样。
通过查看 MDIChild 属性或者检查工程资源管理器,可以确定窗体是否是一个MDI子窗体。如果该窗体的 MDIChild 属性设置为 True,则它是一个子窗体。Visual Basic 在“工程资源管理器”中为MDI窗体与MDI子窗体显示了特定的图标,如图 6.5 所示。

图 6.5 工程资源管理器中的图标标明MDI子窗体、标准窗体和MDI窗体

MDI 窗体运行时的特性
在运行时,MDI 窗体及其所有的子窗体都呈现特定的性质:
1.所有子窗体均显示在MDI窗体的工作空间内。像其它的窗体一样,用户能移动子窗体和改变子窗体的大小,不过,它们被限 制于这一工作空间内。
2.当最小化一个子窗体时,它的图标将显示于MDI窗体上而不是在任务栏中。当最小化MDI窗体时,此MDI窗体及其所有子 窗体将由一个图标来代表。当还原MDI窗体时,MDI 窗体及其所有子窗体将按最小化之前的状态显示出来。
3.当最大化一个子窗体时,它的标题会与MDI窗体的标题组合在一起并显示于MDI窗体的标题栏上(参见图 6.6)。

4.通过设定 AutoShowChildren 属性,子窗体可以在窗体加载时自动显示(True) 或自动隐藏 (False)。
5.活动子窗体的菜单(若有)将显示在MDI窗体的菜单栏中,而不是显示在子窗体中。

时间: 2024-09-16 13:48:39

vb的用户界面(一)的相关文章

vb的用户界面(二)

MDI NotePad应用程序MDI NotePad 示例应用程序是一个简单的文本编辑器,它与 MicrosoftWindows 中包含的 NotePad 应用程序相似.不过,MDI NotePad 应用程序使用的是一个多文档界面 (MDI).在运行时,若用户需要一个新文档(用该应用程序的"文件"菜单中的"新建"命令执行),应用程序就会创建子窗体的一个新实例.这就允许按其所需创建多个子窗体或文档.在 Visual Basic 中为了创建以文档为中心的应用程序,至少需

vb神童教程(续)

第一部分:vb数据库操作实例 vb神童教程(续)--编写一个小型的信息管理系统 vb神童教程(续)--准备数据库 vb神童教程(续)--设计系统的界面及对象的属性 vb神童教程(续)--为对象添加事件代码 第二部分:补充内容 vb神童教程(续)--ODBC数据源简介 vb神童教程(续)--配置Access数据源 vb神童教程(续)---配置SQL Server数据源 vb神童教程(续)--VB的ADO对象 vb神童教程(续)--vb adodb Connection对象简介 vb神童教程(续)-

[转]微软公司软件开发模式简介(下)

Product Developing Process in Microsoft 上图中: QA是微软大的产品部门下设的一个比较专业的测试部门(Quality Assurance Dept) 1.      项目进度表中的缓冲时间(Padding Time) 微软使用缓冲计划,以在最高的效率与较好地对未来作预计之间求得平衡.这种应付突发事件的时间在开发和稳定化过程中是每一个主要里程碑的一部分.缓冲时间主要用于弥补由于对特性(Feature)的不完全理解,或者是技术困难或是由于疏忽而忘记把任务写入进

VB.NET多线程应用

开发者一直要求微软为VB加入更多的多线程功能,对于VB.NET也是这样.VB6已经支持建立多线程的EXE.DLL和OCX.不过使用多线程这个词语,可能也不太确切.因此VB6仅支持运行多个单线程的单元.一个单元实际上是代码执行的空间,而单元的边界限制了代码访问任何单元以外的事物. VB.NET就不同了,它支持建立自由线程(free-threaded)的应用.这意味着多个线程可以访问同样一套的共享数据.本文的以下部分将讨论一下多线程的一些基本点. 问题 虽然VB6支持多个单线程的单元,不过它并不支持

全面剖析VB.NET(7)

七.面向Web的支持    除了Windows Forms新引擎之外,.NET还包含了一个专门为构造Web窗体设计的窗体引擎,称为Web Forms.这个引擎的目标在于让用户能够象创建传统Windows桌面应用的窗体一样方便地创建Web窗体.Web Forms是一种ASP.NET技术,通过它我们可以使用熟悉的RAD(快速程序开发)工具构造出带有执行代码的窗体.不过,窗体中的ASP.NET代码以编译方式在服务器端运行,经过处理后把结果HTML发送给支持HTML 3.2的浏览器.       客户端

VB调用Matlab在WEDM仿真系统中的应用

基于BP神经网络的电火花线切割(WEDM)工艺仿真系统需要具有工艺数据库管理 .工艺效果预测.加工参数优化等设计功能.借助Matlab的神经网络工具箱,可 以建立良好的工艺效果预测模型和参数优化模型,这正是工艺仿真软件最主要的 功能要求.VB是Windows操作系统下优秀的可视化编程工具软件,在用户界面设计 和快速开发等方面具有独特的优势.同时,Matlab仿真软件以其强大的科学计算 功能和开放式开发思想使其成为当前最为流行的仿真计算工具.综合两种开发环 境各自的优势,可采用VB与Matlab混

VB.NET验证邮件地址的合法性实现代码

一.提出问题 现在,对于用户在Web页面上或电话中给出的Email地址,我们越来越不敢肯定它是否真的有效.在今天这个垃圾邮件泛滥成灾的年代,人们完全有理由舍不得轻易透露Email地址. 另一方面,对于通过正规途径得到的邮件地址,当我们将它用于合法的目的时,也常常要为邮件地址是否有效而烦恼,用户可能有意或无意地写错地址,也可能由于长时间不访问而导致邮箱失效.对于少量的邮件地址,也许可以手工验证其合法性,例如发送测试email:但是,当邮件地址的数量达到数万甚至更多时,手工验证就不可能了,必须用专门

VB.NET启动并监测外部程序

程序 你再也不需要使用Win32应用编程接口或者VB的Shell函数来启动外部应用程序了.因为你可以使用.NET框架中的System.Diagnostics.Process类来进行这个操作,从而进一步简化代码. 虽然.NET使很多事情变得更加复杂,但是启动外部应用程序不在此列.在传统VB程序中,你可以使用Shell函数启动一个应用程序.当你传送一个数据文件名的时候,VB在相应应用程序中打开这个数据文件.你可以使用一个任选的windowstyle参数控制所启动的应用程序的窗口方式.例如,在VB6中

方便地启动Oracle服务(VB.NET 2005 Windows服务操控与多线程)

oracle|window|多线程 Oracle 9i有多个系统服务必须都启动之后才能正常工作,但逐个启动比较费事,多数学习Oracle但机器又不是太好的朋友也不能容忍每次都自动启动Oracle服务(那样512MB的内存在启动时就所剩无几了),所以通常都是要用了再启动,这里给出了批量启动windows系统服务的一个例子,介绍了操控windows系统服务的技巧: 首先新建一个Windows Application工程,取名为Oracle Starter粘贴如下代码文件:Form1.Designer