<事件列表>包括所有共享此过程的(事件)过程名 <语句组>就是程序设计者编写的事件响应程序代码. 虽然可以自己键入事件过程的声明语句,但VBNE可自动声明,自动声 明不仅快捷,而且不会出现人为错误,是一种值得提倡的方法。具体方法 如下: 在代码窗体中,从“对象下拉列表框”中选择个对象,从“过程下拉 列表框”中选择一个事件过程名,就可在代码窗口中生成一个事件过程声 明模板。例如:当对象选为窗体Form1,过程选择为Cick,则在代码窗口就 成如图5-1所示的声明模板。 买arn1个事妹) Cliek 日 Public Class Form1 Private Sub Fornl Click Oyval sender As Object, ByVal e As System. EventArgs) Handles Me. Click End sub End class 图5-1声明事件过
<事件列表>包括所有共享此过程的(事件)过程名。 <语句组>就是程序设计者编写的事件响应程序代码。 虽然可以自己键入事件过程的声明语句,但VB.NET可自动声明,自动声 明不仅快捷,而且不会出现人为错误,是一种值得提倡的方法。具体方法 如下: 在代码窗体中,从“对象下拉列表框”中选择一个对象,从“过程下拉 列表框”中选择一个事件过程名,就可在代码窗口中生成一个事件过程声 明模板。例如:当对象选为窗体Form1,过程选择为Click,则在代码窗口就 生成如图5-1所示的声明模板
通用过程只有在被调用时才被执行,主调程序可以是事件过程,也可以 是通用过程。通用过程可以保存在窗体模块和标准模块中,其与事件过程 不同之处在于,通用过程不是由对象的某个事件激活的,因此,通用过程 的创建方法与事件过程有所不同。 5.2.2通用过程的创建 已经学习了事件过程的创建方法,那么通用事件呢?可以在“代码编辑 窗口”中直接输入用户创建的过程,此时,代码窗口中的“对象下拉列表 框”变为“常规”,“过程下拉列表框”显示“"声明”。 通用过程的定义形式如下 [<访问修饰符>]Su<过程名>(<形参表>]) <过程体> End sub 说明: (1)<访问修饰符>为可选项,可以是以下内容之 Public:全局过程,没有访问限制,为默认访问修饰符。 Protected:受保护过程,只能从其自身的类或派生类访问。 Friend:友元过程,只可从包含其声明的程序集内访问。 Private:私有过程,只能在模块级使用 Private
通用过程只有在被调用时才被执行,主调程序可以是事件过程,也可以 是通用过程。通用过程可以保存在窗体模块和标准模块中,其与事件过程 不同之处在于,通用过程不是由对象的某个事件激活的,因此,通用过程 的创建方法与事件过程有所不同。 5.2.2 通用过程的创建 已经学习了事件过程的创建方法,那么通用事件呢?可以在“代码编辑 窗口”中直接输入用户创建的过程,此时,代码窗口中的“对象下拉列表 框”变为“常规”,“过程下拉列表框”显示“声明”。 通用过程的定义形式如下: [<访问修饰符>] Sub<过程名>([<形参表>]) <过程体> End Sub 说明: (1)<访问修饰符>为可选项,可以是以下内容之一。 -- Public :全局过程,没有访问限制,为默认访问修饰符。 -- Protected :受保护过程,只能从其自身的类或派生类访问。 -- Friend :友元过程,只可从包含其声明的程序集内访问。 -- Private :私有过程,只能在模块级使用 Private
过程名>使用与变量名相同的命名规则。过程名不返回值,而是 通过形参与实参的传递得到结果,调用时可返回多个值。 变常数建发上发过栓中跳的封 语句外,还可以包含局部 4)<形参表>的语法格式 以值ona[ ByVal][ ByRet][ [ParamArray<变量名AS<类型丬=<默 其中 Optional表示参数不是必须的关键字。如果使用了该选项,则(形参 表)中的后续参数都必须是可选的 数能 使用 Optional关键字声明。 们果使甭 ParamArray,则任 OPtional Ba表示该参数按值传递;BRe表示该参数按地址传递。BRe是 VB的默认选项。 使用P 可以提供任意数自的参数。 Paramarray关键亭不能与 ByVal, ByRe咸 Optional—起使用 是数组变量重在泰数量活循标准的变量命名约定,如果 默认值>代表 教盆嘉 只对 Optional参数合法。如 果类型为oect,则显式的 Nothing
(2)<过程名>使用与变量名相同的命名规则。过程名不返回值,而是 通过形参与实参的传递得到结果,调用时可返回多个值。 (3)<过程体>是VB的程序段,除一般的执行语句外,还可以包含局部 变量或常数定义语句及Exit Sub从过程中跳出的语句。 (4)<形参表>的语法格式。 [Optional] [{ByVal]|[ByRef}] [ParamArray]<变量名>[As<类型>][=<默 认值>] 其中: -- Optional表示参数不是必须的关键字。如果使用了该选项,则(形参 表)中的后续参数都必须是可选的,而且必须都使用Optional关键字声明。 如果使用了ParamArray,则任何参数都不能使用Optional。 -- ByVal表示该参数按值传递;ByRef表示该参数按地址传递。ByRef是 VB的默认选项。 -- ParamArray只用于形参表的最后一个参数,使用ParamArray关键字 可以提供任意数目的参数。ParamArray关键字不能与ByVal、ByRef或 Optional一起使用。 -- <变量名>代表参数的变量的名称,遵循标准的变量命名约定。如果 是数组变量,要在数组名后加上一对圆括号。 -- <默认值>代表任何常数或常数表达式,只对Optional参数合法。如 果类型为Object,则显式的默认值只能是Nothing
5.2.3通用过程的调用 可以使用独立的调用语句来显式调用Sub过程,不能在表达式中使用过 程名称来调用该过程,必须提供所有必选参数的值,并且必须用括号将实 参数列表括起来。如果未提供仼何参数,则也可以选择省略括号。 调用Sub过程的语法如下乐示 [Ca<过程名>[(<实参表> Cl!关键字是可选项。 例5-1调用全局过程 设计说明: 在工程中建立三个模块:Form1窗体模块,Form2窗体模块, Module1标 准模块。其中,Form1、Form2窗体界面分别如图5-2(a)、(b)所示。 在上述三个模块中分别建立三个全局过程: F1 test( a as form),F2test(a As Form), M test( a as form),代码如下 Form1窗体代码如下: Public Sub F1_testo Me. Label1.Tet="执行Form1窗体过程F1test""输出到 Label1 End sub
5.2.3 通用过程的调用 可以使用独立的调用语句来显式调用Sub过程,不能在表达式中使用过 程名称来调用该过程,必须提供所有必选参数的值,并且必须用括号将实 参数列表括起来。如果未提供任何参数,则也可以选择省略括号。 调用Sub过程的语法如下所示: [Call] <过程名> [(<实参表>)] Call 关键字是可选项。 例5-1 调用全局过程。 设计说明: 在工程中建立三个模块:Form1窗体模块,Form2窗体模块,Module1标 准模块。其中,Form1、Form2窗体界面分别如图5-2(a)、(b)所示。 在上述三个模块中分别建立三个全局过程:F1_test(a As Form),F2_test(a As Form),M_test(a As Form),代码如下: Form1窗体代码如下: Public Sub F1_test() Me.Label1.Text = "执行Form1窗体过程F1_test" '输出到Label1 End Sub
Form2窗体中的全局过程F2test代码如下 Public Sub F2_testo Form1.Labe2.Text="执行Form2窗体过程F2test" 输出到Form1窗体的Labe2 End Sub Private Sub Button1_Click(By Val sender As System Object ByVal e as System EventArgs) Handles Button1. Click CaF2test()"调用其他窗体模块中的 Public过程必须加窗体模块 名 End sub Module1中的全局过程Mtes代码如下 Sub Maino Dim f1 as New form 1 f1. ShowO End sub Public Sub M_test Form1Labe3.Text="执行 Module1中Mtes过程 输出到Form1窗体的Labe3 End sub 程序运行结果如图52(c)所示
Form2窗体中的全局过程F2_test代码如下: Public Sub F2_test() Form1.Label2.Text = "执行Form2窗体过程F2_test" '输出到Form1窗体的Label2 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call F2_test() '调用其他窗体模块中的Public过程必须加窗体模块 名 End Sub Module1中的全局过程M_test代码如下: Sub Main() Dim f1 As New Form1 f1.Show() End Sub Public Sub M_test() Form1.Label3.Text = "执行Module1中M_test过程" '输出到Form1窗体的Label3 End Sub 程序运行结果如图5-2(c)所示