第 7章 多窗体、过程与变量的作用域
2009-11-10
多文档界面( MDI) 应用程序
多文档界面( MDI) 允许创建在单个容器窗体
中包含多个窗体的应用程序。像 Microsoft
Excel与 Microsoft Word for Windows 这样的应
用程序就具有多文档界面。
第 7章 多窗体、过程与变量的作用域
2009-11-10
多文档界面( MDI) 应用程序
MDI窗体与具有一个限制条件的普通
窗体相似。除非控件具有 Align属性
(如 PictureBox 控件)或者具有不可见
界面(如 Timer控件),否则不能将控
件直接放置在 MDI窗体上。
第 7章 多窗体、过程与变量的作用域
2009-11-10
多文档界面( MDI) 应用程序
创建 MDI应用程序时使用下列步骤来创建 MDI窗
体及其子窗体 。
创建 MDI窗体 。 从, 工程, 菜单中选取, 添加
MDI窗体, 。
创建应用程序的子窗体 。 要创建一个 MDI子窗体,
先创建一个新窗体 ( 或者打开一个存在的窗
体 ), 然后把它的 MDIChild属性设为 True
第 7章 多窗体、过程与变量的作用域
2009-11-10
第 7章 多窗体、过程与变量的作用域
2009-11-10
MDI NotePad示例
应用程序是一个简单的文本编辑器
1,指定活动子窗体或控件
2,加载 MDI窗体及其子窗体
3,设置子窗体的大小和位置
4,维护子窗体的状态信息
5,用 QueryUnload卸载 MDI窗体
第 7章 多窗体、过程与变量的作用域
2009-11-10
多个窗体
1,Load语句
Load语句把一个窗体装入内存 。
2,Unload语句
它清除内存中指定的窗体 。
3,Show方法
Show方法用来显示一个窗体 。
4,Hide方法
Hide方法是隐藏窗体, 即不在屏幕上显示, 但
在内存中 。
第 7章 多窗体、过程与变量的作用域
2009-11-10
多个窗体
设置启动窗体
( 1) 在, 工程, 菜单中, 选取, 工程属
性, 。
( 2) 选取, 一般, 。
( 3) 在, 启动对象, 列表框中, 选取要
作为新启动窗体的窗体 。
( 4) 选取, 确定, 。
第 7章 多窗体、过程与变量的作用域
2009-11-10
在 Visual Basic中有 3种过程,Sub过程、
Function( 函数)过程和 Property( 属性)
过程。属性过程用来返回和设置属性的
值,也可以设置对象的引用,本章不再
介绍。下面主要介绍 Sub过程、
Function过程。
第 7章 多窗体、过程与变量的作用域
2009-11-10
1,Sub过程
子过程是在响应事件时执行的代码块 。 将模块中的代码分成子过
程后, 在应用程序中查找和修改代码变得更容易了 。 子过程的
语法是:
[Private|Public][Static]Subprocedurename (arguments)
statements
End Sub
第 7章 多窗体、过程与变量的作用域
2009-11-10
? 子过程以 Sub 开头, 以 End Sub 结束 。
? 过 程名的命名规则与变量名相同 。
? Sub 与 End Sub 之间的语句称为过程体 。
? 形式参数表的形式参数只在本过程内有意义 。
第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.1 调用窗体的公用过程 。
设计一个窗体,窗体的标题为, 调
用窗体的公用过程,,运行程序时,
单击, 改变文本框内容,,改变窗
体中文本框的内容,要求用过程实
现。
第 7章 多窗体、过程与变量的作用域
2009-11-10
1,关键字 Function 代替了关键字 Sub。
2,函数过程有返回值 。
3,在函数过程体中至少应该有一个给
函数过程名赋值的语句 。 如果不给
函数名赋值, 则该函数会返回一个
缺省值 。
第 7章 多窗体、过程与变量的作用域
2009-11-10
2,函数过程 ( Function)
Visual Basic包含内置的或内部的函数, 如 Sqr,Cos
或 Chr。 此外, 还可用 Function语句编写自己的
Function过程 。 函数过程的语法
[Private|Public][Static]Functionprocedurename(arguments)[As type]
Statements
End Function
第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.2 调用窗体的公用函数 。
设计一个窗体,窗体的标题为, 公用
函数,,在窗体的文本框中输入一个整
数,单击, 计算阶乘, 按钮,在窗体中
打印出阶乘的计算结果。要求用函数实
现阶乘计算。
第 7章 多窗体、过程与变量的作用域
2009-11-10
调用 Sub过程
调用 Sub过程有两种方法:
'以下两个语句都调用了名为 MyProc的 Sub过程
Call MyProc (FirstArgument,SecondArgument)
MyProc FirstArgument,SecondArgument
注意, 当使用 Call语法时, 参数必须在括号内 。
若省略 Call关键字, 也必须省略参数两边的括号 。
第 7章 多窗体、过程与变量的作用域
2009-11-10
调用函数
调用自行编写的函数过程的方法和调用 Visual
Basic 内部函数过程的方法一样, 即在表达式中
写上它的名字 。 下面的语句都调用函数 ToDec。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out
of Range"
X = AnotherFunction ( 10 * ToDec)
第 7章 多窗体、过程与变量的作用域
2009-11-10
按值传递参数 。
按值传递参数时, 传递的只是变量的副本 。 如果过程改变
了这个值, 所作的变动只影响副本而不会影响变量本身 。
用 ByVal关键字指出参数是按值来传递的 。 例
Sub PostAccounts (ByVal intAcctNum as Integer)
.
.
'这里放语句 。
.
End Sub
第 7章 多窗体、过程与变量的作用域
2009-11-10
按地址传递参数 。
按地址传递参数使过程用变量的内存
地址去访问实际变量的内容。结果,将
变量传递给过程时,通过过程可永远改
变变量值。按地址传递参数在 Visual
Basic中是缺省的。
第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.3 多窗体与公共过程、标准模块 。
设计一个多窗体程序,在两个窗体中分
别输入圆的半径,然后计算圆的面积和
周长。要求周长的计算调用标准模块中
的函数过程,而面积的计算调用窗体的
函数过程。
第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.4 过程级变量示例 。
设计一个程序演示过程级变量的使用
第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.5 私有模块级变量 。
设计一个程序演示私有模块级变量的用

第 7章 多窗体、过程与变量的作用域
2009-11-10
例 7.6 变量的作用域示例 。
设计一个窗体,在窗体中打印同名变
量在全局和局部范围中的不同值。
第 7章 多窗体、过程与变量的作用域
2009-11-10
综合举例
例 7.7 验证哥德巴赫猜想 。
设计一个窗体,在其中输入一个不小于 6
的偶数,将其表示为两个素数之和。