VB的用户界面设计(2)

http://www.itjxue.com  2015-07-17 21:29  来源:未知  点击次数: 

  MDI 窗体运行时的特性

  在运行时,MDI 窗体及其所有的子窗体都呈现特定的性质:

  1.所有子窗体均显示在 MDI 窗体的工作空间内。像其它的窗体一样,用户能移动子窗体和改变子窗体的大小,不过,它们被限制于这一工作空间内。

  2.当最小化一个子窗体时,它的图标将显示于 MDI 窗体上而不是在任务栏中。当最小化 MDI 窗体时,此 MDI 窗体及其所有子 窗体将由一个图标来代表。当还原 MDI 窗体时,MDI 窗体及其所有子窗体将按最小化之前的状态显示出来。

  3.当最大化一个子窗体时,它的标题会与 MDI 窗体的标题组合在一起并显示于 MDI 窗体的标题栏上。

  4.通过设定 AutoShowChildren 属性,子窗体可以在窗体加载时自动显示(True) 或自动隐藏 (False)。

  5.活动子窗体的菜单(若有)将显示在 MDI 窗体的菜单栏中,而不是显示在子窗体中。

  MDI NotePad 应用程序

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

  在 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 = ScaleHeight

  Text1.Width = ScaleWidth

  End Sub

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

  提示 除了本章提到的以外,Mdinote.vbp 示例应用程序还包含许多 MDI技巧。花一些时间对该示例代码进行全面研究会找到这些技巧。Sdinote.vbp 示例应用程序是同一应用程序转换为 SDI 样式的实现;比较这两个例子可以明白 MDI 和 SDI 技巧的差别。

(责任编辑:IT教学网)

更多

推荐编程综合文章