vb的用户界面(二)

vb的用户界面(二)

ID:37713839

大小:41.50 KB

页数:4页

时间:2019-05-29

vb的用户界面(二)_第1页
vb的用户界面(二)_第2页
vb的用户界面(二)_第3页
vb的用户界面(二)_第4页
资源描述:

《vb的用户界面(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、vb的用户界面(二)发布时间:2007-05-05来源:未知作者:未知MDINotePad应用程序MDINotePad示例应用程序是一个简单的文本编辑器,它与MicrosoftWindows中包含的NotePad应用程序相似。不过,MDINotePad应用程序使用的是一个多文档界面(MDI)。在运行时,若用户需要一个新文档(用该应用程序的“文件”菜单中的“新建”命令执行),应用程序就会创建子窗体的一个新实例。这就允许按其所需创建多个子窗体或文档。在VisualBasic中为了创建以文档为中心的应用程序,至少需要两个窗体:一个MDI窗体和一个子窗体。

2、设计时,应创建一个MDI窗体以容纳该应用程序,再创建一个子窗体作为这个应用程序文档的模板。要创建自己的MDINotePad应用程序,请按照以下步骤执行:1.从“文件”菜单中,选取“新建工程”命令。2.从“工程”菜单中,选取“添加MDI窗体”命令来创建容器窗体。现在,这个工程应当包含一个MDI窗体(MDIForm1)和 一个标准窗体(Form1)。3.在Form1上创建一个文本框(Text1)。4.按下列方式为两个窗体和文本框设置属性。6.在mnuFileNew_Click过程中增加以下代码:PrivateSubmnuFileNew_Click()'

3、创建名为NewDoc的窗体Form1的一个新实例。DimNewDocAsNewForm1'显示此新窗体。NewDoc.ShowEndSub这个过程创建并显示Form1的名为NewDoc的一个新实例(或其副本)。每当从“文件”菜单中选取“新建”命令时,将会创建一个与Form1完全相同的副本(实例),它包含Form1所包含的所有控件和代码。7.给Form1窗体的Form_Resize过程添加以下代码:PrivateSubForm_Resize()'扩展文本框以放置当前子窗体。Text1.Height=ScaleHeightText1.Width=Sca

4、leWidthEndSubForm_Resize事件过程的代码,像Form1中的所有代码一样,能为Form1的每一个实例所共享。当显示窗体的几个副本时,每个窗体都能识别各自的事件。当一个事件出现时,该事件过程的代码就会被调用。由于相同的代码为每个实例所共享,关于调用该代码的窗体是如何引用的,尤其是每个实例都具有相同的名字(Form1)时。这个问题将在本章后面的“使用MDI窗体及其子窗体”一节中讨论。 8.按F5键可运行该应用程序。提示除了本章提到的以外,Mdinote.vbp示例应用程序还包含许多MDI技巧。花一些时间对该示例代码进行全面研究会找到

5、这些技巧。Sdinote.vbp示例应用程序是同一应用程序转换为SDI样式的实现;比较这两个例子可以明白MDI和SDI技巧的差别。使用MDI窗体及其子窗体当MDI应用程序在一次会话中要打开、保存和关闭几个子窗体时,应当能够引用活动窗体和保持关于子窗体的状态信息。这个主题描述了一些用来指定活动子窗体或者控件、加载和卸载MDI窗体及其子窗体、以及保持子窗体的状态信息的编码技巧。指定活动子窗体或控件有时要提供一条命令,它用于对当前活动子窗体上具有焦点的控件进行操作。例如,假设想从子窗体的文本框中把所选文本复制到剪贴板上。在Mdinote.vbp示例应用程

6、序中,“编辑”菜单上的“复制”项的Click事件将会调用EditCopyProc,它是把选定的文本复制到剪贴板上的过程。由于应用程序可以有同一子窗体的许多实例,EditCopyProc需要知道使用的是哪一个窗体。为了指定这一点,使用MDI窗体的ActiveForm属性,该属性可以返回具有焦点的或者最后被激活的子窗体。注意当访问ActiveForm属性时,至少应有一个MDI子窗体被加载或可见,否则会返回一个错误。当一个窗体中有几个控件时,也需要指定哪个控件是活动的。像ActiveForm属性一样,ActiveControl属性能返回活动子窗体上具有焦

7、点的控件。下边是副本例程的示例,从子窗体菜单、MDI窗体菜单或者是工具栏按钮上可对它进行调用。PrivateSubEditCopyProc()'将选定文本复制到剪贴板上。ClipBoard.SetText_frmMDI.ActiveForm.ActiveControl.SelTextEndSub假如,正在编写被多个窗体实例调用的代码,不用窗体标识符访问窗体的控件或属性是一个好办法。例如,用Text1.Height引用Form1上文本框的高度,而不是使用Form1.Text1.Height。这样,该代码总是影响当前窗体。在代码中指定当前窗体的另一种方

8、法是用Me关键字。用Me关键字来引用当前其代码正在运行的窗体。当需要把当前窗体实例的引用参数传递给过程时,这个关键字很有用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。