Visual Basic 用户界面

2016-02-19 17:14 61 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的Visual Basic 用户界面懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

  界面样式

  如果使用过基于 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 所示。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  注意 一个应用程序也可以包括标准的、不是包含在 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 窗体的菜单栏中,而不是显示在子窗体中。

  MDI NotePad 应用程序

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  在 Visual Basic 中为了创建以文档为中心的应用程序,至少需要两个窗体:一个 MDI 窗体和一个子窗体。设计时,应创建一个 MDI 窗体以容纳该应用程序,再创建一个子窗体作为这个应用程序文档的模板。

  要创建自己的 MDI NotePad 应用程序,请按照以下步骤执行:

  1. 从文件菜单中,选取新建工程命令。

  2. 从工程菜单中,选取添加 MDI 窗体命令来创建容器窗体。现在,这个工程应当包含一个 MDI 窗体 (MDIForm1) 和 一个标准窗体(Form1)。

  3. 在 Form1 上创建一个文本框 (Text1)。

  4. 按下列方式为两个窗体和文本框设置属性。

  6. 在 mnuFileNew_Click 过程中增加以下代码:

  Private Sub mnuFileNew_Click ()

  ' 创建名为 NewDoc 的窗体 Form1 的一个新实例。

  Dim NewDoc As New Form1

  ' 显示此新窗体。

  NewDoc.Show

  End Sub

  这个过程创建并显示 Form1 的名为 NewDoc 的一个新实例(或其副本)。每当从文件菜单中选取新建命令时,将会创建一个与 Form1完全相同的副本(实例),它包含 Form1 所包含的所有控件和代码。

  7. 给 Form1 窗体的 Form_Resize 过程添加以下代码:

  

Private Sub Form_Resize()' 扩展文本框以放置当前子窗体。Text1.Height = ScaleHeightText1.Width = ScaleWidth   End Sub

  Form_Resize 事件过程的代码,像Form1 中的所有代码一样,能为 Form1的每一个实例所共享。当显示窗体的几个副本时,每个窗体都能识别各自的事件。当一个事件出现时,该事件过程的代码就会被调用。由于相同的代码为每个实例所共享,关于调用该代码的窗体是如何引用的,尤其是每个实例都具有相同的名字 (Form1) 时。这个问题将在本章后面的使用 MDI 窗体及其子窗体一节中讨论。8. 按 F5 键可运行该应用程序。

来源:http://www.tulaoshi.com/n/20160219/1614676.html

延伸阅读
循环结构 循环结构允许重复执行一行或数行代码。Visual Basic 支持的循环结构有: 1.Do...Loop 2.For...Next 3.For Each...Next Do...Loop 用 Do 循环重复执行一语句块,且重复次数不定。Do...Loop 语句有几种演变形式,但每种都计算数值条件以决定是否继续执行。如同 If...Thencondition 必须是一个数值或...
在vb里,mdi(multiple document interface,多窗口程序)窗体是这样定义的:mdi窗体作为一个程序的后台窗口,包含着mdichild属性为true的窗体。在一个vb程序中,至多只能存在一个mdi父窗体,可以有多个mdi子窗体;建立一个mdi父窗体的方法是在vb的file菜单里选择new mdi form。 在mdi程序运行时,如果子窗口具有菜单,那么当子窗口被激...
通过限制焦点验证控件数据 Validate 事件和 CausesValidation 属性是在允许用户将焦点移开控件之前,串联使用以确认对控件的输入的。例如:假设有几个文本框和一个 Help 按钮的应用程序,当每个文本框接收焦点时,您想在文本框的特殊验证准则被满足之前阻止用户移动焦点;然而,您也想允许用户在任何时候都能单击 Help 按钮。 要做到...
标签: vb
从 Visual Basic 6.0 到 Visual Basic.NET 的转换(1) Microsoft Visual Basic.NET 是 Microsoft Visual Basic? 的后续版本,它是基于 .NET 框架重新设计的,您可以用它来轻松地创建用于 Microsoft Windows? 操作系统和 Web 的下一代应用程序。使用 Visual Basic.NET,可视化开发 Web 应用程序、Web 服务、Windows 应用程序和服务器端组件...
标签: vb
升级 向导 将 Currency 数据类型转换为 Decimal,因此以下代码: Dim x As Currency 升级后将变为: Dim x As Decimal Date Visual Basic 6.0 Date 变量在内部以 Double 格式存储,能够作为 Double 类型的变量操作。 Date 变量存储为 IEEE 64 位浮点数,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日的日期和从 0:...

经验教程

243

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部