VB入门
1.1 知识要点
1.VB的特点、安装和启动
了解VB面向对象、可视化、事件驱动的特点。
2.VB集成开发环境
初学者主要掌握菜单栏、工具栏、工具箱窗口、属性窗口、代码窗口、工程资源管理器窗口的使用。
3.VB对象的概念,对象的属性、方法和事件三要素
4.创建VB应用程序的过程
5.掌握窗体、标签、文本框、命令按钮控件的常用属性、方法和事件的使用
6.VB应用程序的构成和管理
VB应用程序的组成:一个.vbp工程文件、一个(或多个).frm窗体文件、自动产生的.frx二进制文件、还可以有.bas及.cis文件(见下图)。
掌握在完成一个应用程序的创建、编辑、调试后,保存时不要遗漏了某个文件;掌握在工程中添加或删除窗体的方法;区分窗体名称和窗体文件名。
7.制作安装盘
打包和展开的作用和操作过程,查看打包和展开的结果文件。
8.VB帮助系统的安装和使用
VB帮助系统盘MSDN的安装;使用VB帮助最方便的方法是选中需帮助的对象,按F1键,即可显示该对象的帮助信息。
1.2 常见错误和难点分析
1.标点符号错误
在VB中只允许使用西文标点,任何中文标点符号在程序编译时产生"无效字符"错误,统在该行以红色字显示。用户在进入VB后不要使用中文标点符号。中、西文状态下标点号对照见下表所示。
中、西状态下标点符号对照
西文状态 |
, |
. |
' |
" |
; |
_ |
< |
中文状态 |
, |
。 |
' |
" |
: |
—— |
《 |
2.字母和数字形状相似
L的小写字母"1"和数字"l"形式几乎相同、O的小写字母"。"与数字"0"也难以区,这在输入代码时要十分注意,避免单独作为变量名使用。
3.对象名称(Name)属性写错
在窗体上创建的每个控件都有默认的名称,用于在程序中唯一地标识该控件对象。系统为每个创建的对象提供了默认的对象名,例如,Text1、Text2、Command1、Label1等。用户可以将属性窗口的(名称)属性改为自己所指定的可读性好的名称,如txtInput、txtOutput、 cmdOk等。对初学者,由于程序较简单、控件对象使用较少,还是用默认的控件名较方便。
当程序中的对象名写错时,系统显示"要求对象"的信息,并对出错的语句以黄色背景云。用户可以在代码窗口的"对象列表"框检查该窗体所使用的对象。
4.Name属性和Caption属性混淆
Name属性的值用于在程序中唯一地标识该控件对象,在窗体上不可见;而Caption属性的值是在窗体上显示的内容。
5.对象的属性名、方法名写错
当程序中对象的属性名、方法名写错时,VB系统会显示"方法或数据成员未找到"的信息。在编写程序代码时,尽量使用自动列出成员功能,即当用户在输入控件对象名和句点后,系统自动列出该控件对象在运行模式下可用的属性和方法,用户按空格键或双击鼠标即可,这样既可减少输入也可防止此类错误出现。
6.变量名写错
用Dim声明的变量名,在后面的使用中表示同一变量而写错了变量名,VB编译时就认为是两个不同的变量。例如,下面程序段求1~100的和,结果放在Sum变量中:
Dim sum As Integer,i As Integer
Sum=0
For i =1 to 100
Sum=Sun+i
Next i
Print Sum
显示的结果为100。原因是累加和表达式Sum=Sun+i中的右边的变量名Sum写成Sun。VB对变量声明有两种方式,可以用变量声明语句显式声明,也可以用隐式声明,即不声明直接使用。上述变量名的写错,系统为两个不同的变量各自分配内存单元,造成计算结果不正确。因此,为防止此类错误产生,必须对变量声明采用限制其为显式声明方式,也就是在通用声明段加Option Explicit语句。
7.语句书写位置错
在VB中,除了在"通用声明"段利用Dim等对变量声明语句外,其他任何语句都应在事件过程中,否则运行时会显示"无效外部过程"的信息。若要对模块级变量进行初始化工作,则一般放在Form Load()事件过程中。
8.无意形成控件数组
若要在窗体上创建多个命令按钮,有些读者会先创建一个命令按钮控件,然后利用对该控件进行复制、粘贴,这时系统显示:
已经有一个控件为"Command1"。创建一个控件数组吗?的信息,若单击"是"按钮,则系统创建了名称为Command1的控件数组。若要对该控件的 Click事件过程编程,系统显示的框架是:
Private Sub Command1_Click(Index As Integer)
End Sub
Index表示控件数组的下标。
若非控件数组,Click事件过程的框架是:
Private Sub Command1_Click()
End Sub
请注意直到学习第四章数组前,一律不使用控件数组。
9.Print方法中定位问题
定位通过Tab、Spc函数和最后的逗号、分号和无符号来控制。VB中通过Print方法中各参数的综合使用达到所需的结果,但初学者往往难以掌握。
(1) Tab(n)与Spc(n)的区别
Tab(n)从最左第1列开始算起定位于第n列,若当前打印位置已超过n列,则定位于下一行的第n列,这是常常定位不好出现的问题。在格式定位中,Tab用得最多。
Spc(n)从前一打印位置起空n个空格。例如,下面程序段显示了Tab与Spc的区别,效果如图所示。
Private Sub Commandl_Click()
Print "1234567890”,
Print Tab(1);"**"';Tab(2);"%%%";spc(2);"$$$$"
End Sub
(2) 紧凑格式";"分号的使用
紧凑格式";",即输出项之间无间隔。但对于数值型,输出项之间系统自动空一列,而由于数值系统自动加符号位,因此,大于零的数值,实际空两列。对于字符型之间无空格。
例如,下面程序段,效果如图所示。
Private Sub Command1_Click()
Print 1;-2;3
Print"1234";"5678"
Print"A";"B";"C";"D","E","F"
End Sub
从该例应区分数值和字符在紧凑格式输出的差异。
10.打开工程时找不到对应的文件
一般,一个再简单的应用程序也应由一个工程.vbp文件和一个窗体.frm文件组成。工程文件记录该工程内的所有文件(窗体.frm文件、标准模块.bas文件、类模块.cls文件等)的名称和所存放在磁盘上的路径。
若在上机结束后,把文件复制到软盘上保存,但又少复制了某个文件,下次打开工程时就会显示"文件未找到"。也有在VB环境外,利用Windows资源管理器或DOS命令将窗体文件等改名,而工程文件内记录的还是原来的文件名,这样也会造成打开工程时显示"文件未找到"。
解决此问题的方法:一是修改.vbp工程文件中的有关文件名:二是通过"工程"菜单的"添加窗体"中的"现存"选项,将改名后的窗体加入工程。
第二章 VB语言基础和顺序结构
2.1 知识要点
1.VB程序的书写规则
(1) VB代码书写规则
1)程序中不区分字母的大小写,Ab 与AB等效;
2)系统对用户程序代码进行自动转换:
l 对于VB中的关键字,首字母被转换成大写,其余转换成小写
l 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写
l 对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式
(2) 语句书写规则
1) 在同一行上可以书写多行语句,语句间用冒号(:)分隔
2) 单行语句可以分多行书写,在本行后加续行符:空格和下划线 _
3) 一行允许多达255个字符
(3) 程序的注释方式
1) 整行注释一般以 Rem开头,也可以用撇号 ';
2) 用撇号 ' 引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便;
3) 可以利用“编辑”工具栏的 “设置注释块”、“解除注释块”来将设置多行注释。
2.VB提供的数据类型
VB提供了丰富的数据类型(见教程表1.3.1),每种数据类型有关键字或类型符表示,不同的数据类型占用不同的存储空间,用户可根据实际问题的需要使用合适的类型。除此数据类型外,VB还提供了构造类型,即数组和用户自定义类型(相当于记录类型)。
3.变量和常量
(1) 变量
l 变量的命名规则:
☆ 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度≤255个字符;
☆ 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim 、Sin
☆ VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示
☆ 为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。
l 变量的声明:有利用Dim等声明语句或类型符声明各种类型的变量,也可以不声明直接使用具有Variant变体类型的变量。为使程序运行安全、可靠,对使用的变量还是利用显式声明为好。
l 变量的初值:系统默认数值型变量为零、字符型变量为空(…Q),对象变量为Nothing。
(2) 常量
在VB中,常量有三类,分别为:
·直接常量,例如,1、1.23、&Hab、0.123El、"1234asd"、#2000/5/5#、True、False。
·用户自定义常量,例如,Const PI=3.14159。
·VB系统提供的常量,例如,vbEmpty、vbInteger、vbNormal。
4.运算符及优先级
算术运算符 - 、^ 、* 或 / 、 /、 Mod 、+ 或 - 由高到低
字符运算符 +或& 同级
关系运算符 =、>、>=、<、<=、<>、Is、Like 同级
逻辑运算符 Not、And、Or、Xor、Eqv、Imp 高到低
5.表达式书写及值的类型
书写规则:从左到右在-行上书写,无高低区分:表达式中的运算符可以用圆括号括起,以改变运算的优先级或增加表达式的消蜥度。不能使用方括号或花括号,圆括号可以出现多个,但要配对。
值的类型:在算术表达式中,出现不同的数据类型,向精度高的数据类型转换。
6.常用函数
VB中提供了丰富的函数,教程中按算术、字符串、日期和时间、转换,格式等分类列出了一些常用的函数,对函数完整的形式和使用举例参阅VB帮助。查阅的方法一般有两种:对已知函数名,选中函数名,按F1键:未知函数名,进入VB帮助后,通过"目录"选项卡,选择"Visual Basic文档"目录,再选择"参考"下的"语言参考"中的"函数"。
7.赋值语句
赋值号"="左边只能是变量;一次只能对一个变量赋值。
8.与用户交互函数和过程
InputBox函数和MsgBox函数或过程。
2.3 常见错误和难点分析
1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错
例如,要将数学上表示变量x在一定数值范围内如3≤x<10,以VB的逻辑表达式表示,有的读者写成的VB表达式为:
3<=x<10
此时在其他语言中将产生语法错,而在VB中不产生语法错,程序能运行,但不管x的值为多少,表达式的值永远为True,这造成程序能正常运行的假象,其结果是不正确的。
因为在VB中,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。例如,逻辑常量Tme转换为数值型的值为-1,False为0;反之数值型非0转换为逻辑型的值为True,0为False。同样数字字符与数值运算,转换为数值型。
例如,语句 PrintTrue+3 '显示的结果是2
Print"123"+100 '显示的结果是223
Print#5/1/2000#+3 '显示的结果是00-5-4
根据此原因,表达式:
3<=x <10
(1)
(2)
值的计算过程是:首先根据x的值计算3<=x,结果总为True或False;然后该值(-1或0)与10比较永远为True。正确的VB表达式书写为:
3<=x And x<10
2.同时给多个变量赋值,在VB没