VB编程基础教程文档格式.docx

上传人:b****6 文档编号:18998796 上传时间:2023-01-02 格式:DOCX 页数:60 大小:65.35KB
下载 相关 举报
VB编程基础教程文档格式.docx_第1页
第1页 / 共60页
VB编程基础教程文档格式.docx_第2页
第2页 / 共60页
VB编程基础教程文档格式.docx_第3页
第3页 / 共60页
VB编程基础教程文档格式.docx_第4页
第4页 / 共60页
VB编程基础教程文档格式.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

VB编程基础教程文档格式.docx

《VB编程基础教程文档格式.docx》由会员分享,可在线阅读,更多相关《VB编程基础教程文档格式.docx(60页珍藏版)》请在冰豆网上搜索。

VB编程基础教程文档格式.docx

详细信息关于在类模块中编写代码的更详细的信息,请参阅“用对象编程”。

注意VisualBasic的专业版和企业版也包含ActiveX文档、ActiveX设计器和用户控件。

它们介绍了具有不同文件扩展名的新模块类型。

从编写代码的角度来看,这些模块应视同为窗体模块。

使用“代码编辑器”

VisualBasic“代码编辑器”是一个窗口,大多数代码都在此窗口上编写。

它象一个高度专门化的字处理软件,有许多便于编写VisualBasic代码的功能。

图5.4所为示“代码编辑器”窗口。

图5.4“代码编辑器”窗口

因为要操作模块中的VisualBasic代码,所以要为每一个从“工程资源管理器”中选择的模块打开一个独立的“代码编辑器”窗口。

在每个模块中,对于模块中所包含的每个对象,将模块中的代码再细分出与对象对应的独立部分。

用“对象列表框”实现各部分间的切换。

在窗体模块中,该列表包含一个通用段,一个属于窗体自身的段以及窗体所包含的每一控件的段。

对于类模块,列表包括一个通用段和一个类段;

对于标准模块,只有一个通用段被显示。

每一段代码都可包含几个用“过程列表框”访问的不同过程。

对窗体或控件的每一个事件过程,窗体模块的过程列表都包含一个独立的段。

例如,Label控件的过程列表就包含Change事件段、Click事件段和DblClick事件段等等。

类模块只列举类本身的事件过程—初始化和终止。

标准模块不列举任何事件过程,因为标准模块不支持事件。

模块通用段的过程列表只包含唯一段—声明段,其中放置模块级的变量、常数和DLL声明。

当在模块中添加子过程或函数过程时,那些过程被添加到声明段下方的“过程列表框”中。

代码的两种不同视图都可用于“代码编辑器”窗口。

可以一次只查看一个过程,也可以查看模块中的所有过程,这些过程彼此之间用线隔开(如图5.4所示)。

为了在两个视图之间进行切换,利用编辑器窗口左下角的“查看选择”按钮。

自动完成编码

VisualBasic能自动填充语句、属性和参数,这些性能使编写代码更加方便。

在输入代码时,编辑器列举适当的选择、语句或函数原型或值。

通过“工具”菜单上的“选项”命令访问“选项”对话框,在“选项”对话框的“编辑器”选项卡上可用这样的选项,由它们决定是允许还是禁止各代码的设置值。

在代码中输入一控件名时,“自动列出成员特性”会亮出这个控件的下拉式属性表(图5.5)。

键入属性名的前几个字母,就会从表中选中该名字,按Tab键将完成这次输入。

当不能确认给定的控件有什么样的属性时,这个选项是非常有帮助的。

即使选择了禁止“自动列出成员特性”,仍可使用CTRL+J组合键得到这种性能。

图5.5“自动列表成员功能”

“自动快速信息”功能显示语句和函数的语法(图5.6)。

当输入合法的VisualBasic语句或函数名之后,语法立即显示在当前行的下面,并用黑体字显示它的第一个参数。

在输入第一个参数值之后,第二个参数又出现了,同样也是黑体字。

“自动快速信息”也可以用CTRL+I组合键得到。

图5.6“自动快速信息”

书签

在代码编辑器中书签可用来标记代码的某些行,以便您以后可以很容易地返回这些行。

书签开关的切换以及定位到已有书签的命令可以在编辑、书签菜单项或编辑工具栏中得到。

详细信息关于如何使用组合键使用“代码编辑器”窗口的各种功能的更详细信息,请参阅“代码窗口的快捷键”。

编码基础

这一部分介绍代码编写机制,包括如何中断和合并代码行、如何添加注释、如何使用数字以及VisualBasic命名约定。

将单行语句分成多行

可以在“代码”窗口中用续行符(一个空格后面跟一个下划线)将长语句分成多行。

由于使用续行符,无论在计算机上还是打印出来的代码都变得易读。

下面用续行符(_)将代码分成若干行:

Data1.RecordSource=_

"

SELECT*FROMTitles,Publishers"

_

&

"

WHEREPublishers.PubId=Titles.PubID"

ANDPublishers.State='

CA'

在同一行内,续行符后面不能加注释。

至于在什么地方可以使用续行符,还是有某些限制的。

将多个语句合并到同一行上

通常,一行之中有一个VisualBasic语句,而且不用语句终结符。

但是也可以将两个或多个语句放在同一行,只是要用冒号(:

)将它们分开。

Text1.Text="

Hello"

:

Red=255:

Text1.BackColor=_

Red

但是,为了便于阅读代码,最好还是一行放一个语句。

.

详细信息关于详细信息,请参阅“VisualBasic的规范、限制和文件格式”。

在代码中添加注释

阅读本手册的例子时常会遇到注释符('

)。

这个符号告诉VisualBasic,忽略该符号后面的内容。

这些内容是代码段中的注释,既是为了方便开发者,也是为了方便以后可能检查源代码的其他程序员。

例如:

'

这是从屏幕左边

开始的注释。

Hi!

 

在文本框中放

'

欢迎词。

注释可以和语句在同一行并写在语句的后面,也可占据一整行。

上述代码对这两种情况都作了示范。

记住,不能在同一行上,将注释接在续行符之后。

注意您可以通过选中两行或多行代码并在“编辑”工具栏上通过选择“注释块”或“删除注释块”按钮来对该代码块添加或删除注释符号。

理解数字系统

在本文档中,大多数的数值都是十进制的(基数为10)。

但有时用十六进制数(基数为16)或八进制数(基数为8)更方便。

VisualBasic用前缀&

H表示十六进制数,而用&

O表示八进制数。

下表说明同一个数的十进制、八进制和十六进制表示。

十进制八进制十六进制

9&

O11&

H9

15&

O17&

HF

16&

O20&

H10

20&

O24&

H14

255&

O377&

HFF

通常不必掌握十六进制或八进制数制,因为计算机可以用任何数制的数工作。

但是,对某些任务来说,有的数系就比其它数系更合适,例如利用十六进制数设置屏幕和控件的颜色。

VisualBasic的命名约定

在编写VisualBasic代码时,要声明和命名许多元素(Sub和Function过程、变量、常数等等)。

在VisualBasic代码中声明的过程、变量和常数的名字,必须遵循这些规则:

它们必须以字母开头。

它们不可以包含嵌入的句号或者类型声明字符(规定数据类型的特殊字符)。

它们不能超过255个字符。

控件、窗体、类和模块的名字不能超过40个字符。

它们不能和受到限制的关键字同名。

受到限制的关键字是VisualBasic使用的词,是语言的组成部分。

其中包括预定义语句(比如If和Loop)、函数(比如Len和Abs)和操作符(比如Or和Mod)。

详细信息关于关键字表的更详细信息,请参阅语言参考。

窗体和控件可以和受到限制的关键字同名。

例如,可以将某个控件命名为Loop。

但在代码中不能用通常的方法引用该控件,因为VisualBasic会认为Loop意味着关键字。

例如,这样的代码就会出错。

Loop.Visible=True 

出错。

为了引用那些和受到限制的关键字同名的窗体或控件,就必须限定它们,或者将其用方括号[]括起来。

例如,下面的代码就不会出错。

MyForm.Loop.Visible=True 

用窗体名

将其限定。

[Loop].Visible=True 

方括号

起了作用。

在引用窗体和控件时都可以用这种方式使用方括号,但在声明变量或定义过程期间,当变量名或过程名与受到限制的关键字相同时,这种方式是不能使用的。

方括号还可以用来强制VisualBasic接受其它类型库提供的名称,这些名称与受到限制的关键字冲突。

注意因为键入方括号也是令人厌倦的事情,所以希望少用受到限制的关键字作窗体或控件名。

但是,如果VisualBasic的新版本定义了与现有窗体或控件冲突的新关键字,那么,在为使用新版本而更新代码时,可以使用这个技巧。

变量

在VisualBasic中执行应用程序期间,用变量临时存储数值。

变量有名字(用来引用变量所包含的值的词)和数据类型(确定变量能够存储的数据的种类)。

可以把变量看作内存中存放未知值的所在处。

例如,假定正在为水果铺编一个销售苹果的软件。

在销售实际发生之前并不知道苹果的价格和销量。

此时,可以设计两个变量来保存未知数—将它们命名为ApplePrice和ApplesSold。

每次运行程序时,用户就这两个变量提供具体值。

为了计算总的销售额,并且将结果显示在名叫txtSales的文本框中,代码应该是这样的:

txtSales.txt=ApplePrice*ApplesSold

每次根据用户提供的数值,这个表达式返回不同的金额。

由于有了变量,就可以设计一个算式,而不必事先知道实际的输入是多少。

在这个例子中,ApplePrice的数据类型是货币,而ApplesSold的数据类型是整数。

变量还可以表示许多其它数值,比如:

文本数值、日期、各种数值类型,甚至对象也在此列。

存储和检索变量中的数据

用赋值语句进行计算,并将结果赋予变量:

ApplesSold=10 

将值10

传给变量。

ApplesSold=ApplesSold+1 

变量值

增一。

注意,例子中的等号是赋值符,并不是等于操作符;

它将数值(10)赋予变量(ApplesSold)。

声明变量

声明变量就是事先将变量通知程序。

要用Dim语句声明变量,Dim语句提供了变量名:

Dimvariablename[Astype]

在过程内部用Dim语句声明的变量,只有在该过程执行时才存在。

过程一结束,该变量的值也就消失了。

此外,过程中的变量值对过程来说是局部的—也就是说,无法在一个过程中访问另一个过程中的变量。

由于这些特点,在不同过程中就可使用相同的变量名,而不必担心有什么冲突和意想不到变故。

变量名:

必须以字母开头。

不能包含嵌入的句号或者嵌入的类型声明字符。

不得超过255个字符。

在同一个范围内必须是唯一的。

范围就是可以引用变量的变化域—一个过程、一个窗体等等。

由于Dim语句中的可选的Astype子句,可以定义被声明变量的数据类型或对象类型。

数据类型定义了变量所存储信息的类型。

String、Integer和Currency都是数据类型的例子。

变量也可以包含来自VisualBasic或其它应用程序的对象。

Object、Form1和TextBox都是VisualBasic对象类型或类的实例。

详细信息关于对象的更详细的信息,请参阅“用对象编程”和“用部件编程”。

在本章后面的“数据类型”部分将详细讨论数据类型。

声明变量的其它方式:

不在过程内部,而在窗体、标准或类模块的声明段声明变量,这将使变量对模块中的所有过程有效。

用Public关键字声明变量,这将使变量在整个应用程序中有效。

用Static关键字声明一个局部变量,那么,即使过程结束,变量的值也仍然保留着。

隐式声明

在使用一个变量之前并不必先声明这个变量。

例如,可以书写这样一个函数,在其中就不必在使用变量TempVal之前先声明它:

FunctionSafeSqr(num)

TempVal=Abs(num)

SafeSqr=Sqr(TempVal)

EndFunction

VisualBasic用这个名字自动创建一个变量,使用这个变量时,可以认为它就是显式声明的。

虽然这种方法很方便,但是如果把变量名拼错了的话,会导致一个难以查找的错误。

例如,假定写了这样一个函数:

SafeSqr=Sqr(TemVal)

乍看起来,这两段代码好象是一样的。

但是因为在倒数第二行把TempVal变量名写错了,所以函数总是返回0。

当VisualBasic遇到新名字,它分辨不出这是意味着隐式声明了一个新变量呢,还是仅仅把一个现有变量名写错了,于是只好用这个名字再创建一个新变量。

显式声明

为了避免写错变量名引起的麻烦,可以规定,只要遇到一个未经明确声明就当成变量的名字,VisualBasic都发出错误警告。

要显式声明变量,请

在类模块、窗体模块或标准模块的声明段中加入这个语句:

OptionExplicit

—或—

在“工具”菜单中选取“选项”,单击“编辑器”选项卡,再复选“要求变量声明”选项。

这样就在任何新模块中自动插入OptionExplicit语句,但不会在已经建立起来的模块中自动插入;

所以在工程内部,只能用手工方法向现有模块添加OptionExplicit。

如果对包含SafeSqr函数的窗体或标准模块执行该语句,那么VisualBasic将认定TempVal和TemVal都是未经声明变量,并为两者都发出错误信息。

随后就可以显式声明TempVal。

DimTempVal

因为VisualBasic对拼错了的TemVal显示错误信息,所以能够立刻明白是什么问题。

由于OptionExplicit语句有助于抓住这些类型的错误,所以最好在所有代码中使用它。

注意OptionExplicit语句的作用范围仅限于语句所在模块,所以,对每个需要VisualBasic强制显式变量声明的窗体模块、标准模块及类模块,必须将OptionExplicit语句放在这些模块的声明段中。

如果选择“要求变量声明”,VisualBasic会在后续的窗体模块、标准模块及类模块中自动插入OptionExplicit,但是不会将它加入到现有代码中。

必须在工程中通过手工将OptionExplicit语句加到任何现有模块中。

理解变量的范围

变量的范围确定了能够知晓该变量存在的那部分代码。

在一个过程内部声明变量时,只有过程内部的代码才能访问或改变那个变量的值;

它有一个范围,对该过程来说是局部的。

但是,有时需要使用具有更大范围的变量,例如这样一个变量,其值对于同一模块内的所有过程都有效,甚至对于整个应用程序的所有过程都有效。

VisualBasic允许在声明变量时指定它的范围。

指定变量的有效范围

一个变量在划定范围时被看作是过程级(局部)变量,还是模块级变量,这取决于声明该变量时采用的方式。

范围专用公用

过程级变量对于这种过程是专用的,在该过程中出现了这些变量。

不可使用。

不能在一个过程中声明公用变量。

模块级变量对于这种过程是专用的,在该过程中出现了这些变量。

变量可用于所有模块。

过程内部使用的变量

过程级变量只有在声明它们的过程中才能被识别。

也称它们为局部变量。

用Dim或者Static关键字来声明它们。

DimintTempAsInteger

—或者—

StaticintPermanentAsInteger

在整个应用程序运行时,用Static声明的局部变量中的值一直存在,而用Dim声明的变量只在过程执行期间才存在。

对任何临时计算来说,局部变量是最佳选择。

例如,可以建立十来个不同的过程,每个过程都包含称作intTemp的变量。

只要每个intTemp都声明为局部变量,那么每个过程只识别它自己的intTemp版本。

任何一个过程都能够改变它自己的局部的intTemp变量的值,而不会影响别的过程中的intTemp变量。

模块内部使用的变量

按照缺省规定,模块级变量对该模块的所有过程都可用,但对其它模块的代码不可用。

可在模块顶部的声明段用Private关键字声明模块级变量,从而建立模块级变量。

PrivateintTempAsInteger

在模块级,Private和Dim之间没有什么区别,但Private更好些,因为很容易把它和Public区别开来,使代码更容易理解。

所有模块使用的变量

为了使模块级的变量在其它模块中也有效,用Public关键字声明变量。

公用变量中的值可用于应用程序的所有过程。

和所有模块级变量一样,也在模块顶部的声明段来声明公用变量。

PublicintTempAsInteger

注意不能在过程中声明公用变量,只能在模块的声明段中声明公用变量。

详细信息有关变量的其它信息,请参阅“高级变量主题”。

高级变量主题

使用多个同名的变量

如果不同模块中的公用变量使用同一名字,则通过同时引用模块名和变量名就可以在代码中区分它们。

例如,如果有一个在Form1和Module1中都声明了的公用Integer变量intX,则把它们作为Module1.intX和Form1.intX来引用便得到正确值。

为了看清这是如何工作的,在一个新工程中插入两个标准模块,并在窗体上画上三个命令按钮。

在第一个标准模块Module1之中声明一个变量intX。

Test过程设置它的值:

PublicintXAsInteger 

声明Module1的intX。

SubTest()

设置Module1的intX变量的值。

intX=1 

EndSub

在第二个标准模块Module2中声明了第二个变量intX,它有相同的名字。

又是名为Test的过程设置它的值:

声明了Module2的intX。

设置Module2的intX变量的值。

intX=2 

在窗体模块中声明了第三个变量intX。

名为Test的过程又一次设置它的值。

声明了该窗体的intX变量。

设置form中的intX变量值。

intX=3

在三个命令按钮的Click事件过程中,每一个都调用了相应的Test过程,并用MsgBox来显示这三个变量的值。

PrivateSubCommand1_Click()

Module1.Test 

调用Module1中的Test。

MsgBoxModule1.intX 

显示Module1的intX。

PrivateSubCommand2_Click()

Module2.Test 

调用Module2中的Test。

MsgBoxModule2.intX 

显示Module2的intX。

PrivateSubCommand3_Click()

Test 

调用Form1中的Test。

MsgBoxintX 

显示Form1的intX。

运行应用程序,单击三个命令按钮中的每一个按钮。

于是将看到三个公用变量被分别引用。

注意在第三个命令按钮的Click事件过程中,在调用Form1的Test过程时不必指定Form1.Test,在调用Form1的Integer变量的值时也不必指定Form1.intX。

如果多个过程或变量同名,则VisualBasic会取变化更受限制的值,在这个例子中,就是Form1变量。

公用变量与局部变量的比较

在不同的范围内也可有同名的变量。

例如,可有名为Temp的公用变量,然后在过程中声明名为Temp的局部变量。

在过程内通过引用名字Temp来访问局部变量;

而在过程外则通过引用名字Temp来访问公用变量。

通过用模块名限定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1