事件过程当 Visual Basic 中的对象对一个事件的发生作出认定时,便自动用相应于事件的名字调用该事件的过程。因为名字在对象和代码之间建立了联系,所以说事件过程是附加在窗体和控件上的。
一个控件的事件过程将控件的(在 Name 属性中规定的)实际名字、下划线 (_) 和事件名组合起来。例如,如果希望在单击了一个名为cmdPlay 的命令按钮之后,这个按钮会调用事件过程,则要使用cmdPlay_Click 过程。
一个窗体事件过程将词汇 "Form"、下划线和事件名组合起来。如果希望在单击窗体之后,窗体会调用事件过程,则要使用 Form_Click 过程。(和控件一样,窗体也有唯一的名字,但不能在事件过程的名字中使用这些名字。)如果正在使用 MDI 窗体,则事件过程将词汇 " MDIForm" 、下划线和事件名组合起来,如 MDIForm_Load。
所有的事件过程使用相同的语法。
虽然可以自己编写事件过程,但使用 Visual Basic 提供的代码过程会更方便,这个过程自动将正确的过程名包括进来。从对象框中选择一个对象,从过程框中选择一个过程,就可在代码编辑器 窗口选择一个模板。
在开始为控件编写事件过程之前先设置控件的 Name 属性,这不失为一个好主意。如果对控件附加一个过程之后又更改控件的名字,那么也必须更改过程的名字,以符合控件的新名字。否则,Visual Basic 无法使控件和过程相符。过程名与控件名不符时,过程就成为通用过程。
详细信息 Visual Basic 可识别各种窗体和控件的各种事件。关于所有事件的说明,请参阅语言参考。
Function 过程
Visual Basic 包含内置的或内部的函数,如 Sqr、Cos 或 Chr。此外,还可用 Function 语句编写自己的 Function 过程。
函数过程的语法是:
Private|Public][Static]Function procedurename (arguments) [As type]
statements
End Function
与 Sub 过程一样,Function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与子过程不同,Function 过程可返回一个值到调用的过程。在Sub 过程与Function 过程之间有三点区别:
一般说来,让较大的语句或表达式的右边包含函数过程名和参数(returnvalue = function),这就调用了函数。
与变量完全一样,函数过程有数据类型。这就决定了返回值的类型(如果没有 As 子句,缺省的数据类型为 Variant)。
给 procedurename 自身赋一个值,就可返回这个值。Function 过程返回一个值时,该值可成为较大表达式的一部分。
例如,下面是已知直角三角形两直角边的值,计算第三边(斜边)的函数:
Function Hypotenuse (A As Integer, B As Integer) As String
Hypotenuse = Sqr (A ^ 2 + B ^ 2)
End Function
在 Visual Basic 中调用 Function 过程的方法和调用任何内部函数的方法是一样的:
Label1.Caption = Hypotenuse(CInt(Text1.Text), _
CInt(Text2.Text))
strX = Hypotenuse (Width, Height)
详细信息 关于函数过程的详细信息,请参阅《Visual Basic 6.0语言参考手册》中的Function 语句。调用各种类型的过程的技巧,在本章后面的调用过程部分有详细讨论。
使用过程
创建新过程
要创建新的通用过程,请
在代码窗口输入过程头并按下回车键。过程头以 Sub 或 Function 打头,再接一个名字。例如,可以用以下任一方式输入:
Sub UpdateForm ()
Function GetCoord ()
通过完成新过程的模板, Visual Basic 作出反应。
选择现有过程
要在当前模块中查看过程,请
为了查看现有通用过程,在代码窗口的对象框中选择通用,然后在过程框中选择过程。
-或者-
为查看事件过程,在代码窗口的对象框中选择适当的对象,然后在过程框中选择事件。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)要查看其它模块中的过程,请
1. 在视图菜单中选取对象浏览器。
2. 在工程/库框中选择工程。
3. 在类/模块列表中选择模块,并在成员列表中选择过程。
4. 选取查看定义。
调用过程
调用过程有诸多技巧,它们与过程的类型、位置以及在应用程序中的使用方式有关。下面的章节说明如何调用 Sub 过程和 Function 过程。
调用 Sub 过程
与 Sub 过程不同,在表达式中,Sub 过程不能用其名字调用。调用 Sub 过程的是一个独立的语句。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)调用 Sub 过程有两种方法:
'以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意,当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。
调用函数过程
通常,调用自行编写的函数过程的方法和调用 Visual Basic 内部函数过程(例如 Abs)的方法一样;即在表达式中写上它的名字。
'下面的语句都调用函数 ToDec。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out of Range"
X = AnotherFunction ( 10 * ToDec)
就像调用 Sub 过程那样,也能调用函数。下面的语句都调用同一个函数:
Call Year (Now)Year Now
当用这种方法调用函数时,Visual Basic 放弃返回值。
调用其它模块中的过程
在工程中的任何地方都能调用其它模块中的公用过程。可能需要指定这样的模块,它包含正在调用的过程。调用其它模块中的过程的各种技巧,取决于该过程是在窗体模块中、类模块中还是标准模块中。