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没有造成语法错而形成逻辑错

例如,要同时给x,y,z三个整型变量赋初值1,有的读者写成如下赋值语句:

x=y=z=1

在C语言中,上述语句是可以实现同时对多个变量赋值,而在VB中规定一句赋值语句内只能给一个变量赋值,但上述语句并没有产生语法错,运行后x,y,z中的结果均为0。

原因是VB将y=z=1作为一个表达式,再将表达式的结果赋值给x。在VB中默认数值型变量的初值为0,根据上面错误1的分析类推,因此表达式y=z=l的结果为0,所以x赋得的值为0、y、z变量的值为默认值o。

3.标准函数名写错

VB提供了很多标准函数,如IsNumeric()、Date()、LeR()等。当函数名写错时,如将 IsNumeric写成IsNummeric,系统显示"子程序或函数未定义",并将该写错的函数名选中提醒用户修改。

[提示]

如何判断函数名、控件名、属性、方法等是否写错,最方便的方法是当该语句写完后,按 Enter键,系统把被识别的上述名称自动转换成规定的首字母大写形式,否则为错误的名称。

4.数据合法性检查中引起程序的死循环

在数据输入时,经常需要对输入的数据作合法性检查,以确保程序运行的正确性。如在实验::第1题中,对输入的温度要求是数字,否则删除原输入的内容,焦点仍定位于文本柜。有关属性设置见下表,界面如图2.2.2所示,程序段如下。

表2.2.1 控件有关属性

有关控件名 TabIndex

Text1 2

Text2 3

Command1 4

Command1 5

Private Sub Text1_LostFocus()

If Not IsNumeric(Text1)Then

Text1=""

Text1.SetFocus

End If

EndSub

Private Sub Text2_LostFocus()

If Not IsNumeric(Text2)Then

Text2=""

Text2.SetFocus

End If

End Sub

当华氏温度(Text1)输入错时,焦点在Text2处不停地闪动,程序产生死循环。

原因是当Textl输入结束按Tab键,激发Textl LostFocus事件,焦点已到Text2;但当判断Textl文本框输入数据错时,执行Textl.SetFocus,使焦点从Text2拉回到Textl;而又激发Text2_LostFocus事件,此时并没有判断Text2文本框输入数据错,又执行 Text2.SetFocus,使焦点从Text1拉回到Text2,如此交错造成死循环。

而当摄氏温度(Text2)输入错时,程序正常运行。因为当Text2输入结束按Tab键,焦点已到Commanl,因此不会产生死循环。

解决Text1输入错时死循环的问题,只要把Private Sub Text2_LostFocus()事件的If表达式If Not IsNumeric(Text2)Then改为:IfText2<>""And Not isNumeric(Text2)Then即可。

5.如何终止死循环

当编写程序时考虑不周到,产生死循环(尤其使用第四章介绍的循环结构)时,只要同时按Ctrl+Break键就町终止死循环,找出死循环的原因,修改程序。

6.声明局部变量和窗体级变量的问题

在VB程序中,除了大量的控件对象外,还要使用一些变量,暂时存放一些中间结果。这些变量的声明可以放在过程外的"通用声明"段(称为窗体级变量,在教程的3.7.4节介绍),也可以放在过程中(称为局部变量),怎样安置这些变量,初学者觉得有点头疼。两者区别:窗体级变量在本窗体的所有过程中均可使用:而局部变量仅在变量所在的过程中可使用,也即随着本过程的执行而分配存储空间,当执行到EndSub语句,分配的内存空间回收,变量的值也丢失。

具体对实验二第2题来说,在方法一中窗体内有四个过程,共同要用到三个变量a,b,c,因此这些变量的声明应在"通用声明"段,否则Click事件过程中a,b,c变量的值为零。在方法二中只有一个事件过程,变量a,b,c作为过程级变量声明,当然声明与窗体级变量效果相同。

方法一: 方法二:

Dimag,b#,c# Pfiv~eSubForm-Click()

Private Sub Textl_LostFocus() Dima#,b#,c#

… '对变量a赋值 … '用到变量a,b,c

EndSub EndSub

Private Sub Text2_LostFocus()

… '对变量b赋值

EndSub

Private Sub Text3_LostFocus()

… '对变量c赋值

EndSub

Private Sub Command1_Click()

… '用到变量a,b,c

EndSub

7.在Form Load事件中,SetFocus方法不起作用

原因同Print方法,因为系统在窗体装入内存时无法同步地用SetFocus方法定位控件的焦点。解决的方法在属性窗口对要定位焦点的控件将其Tablndex值设置为。就可。

8.程序运行时对多个文本框间焦点移动的问题

方法-:按"Tab"键。这时可不必编程,直接利用系统提供的功能方便地在各控件之间移动。若要确定离开或进入了哪个控件,则利用"控件LostFocus''或"控件_GotFocus''事件进行判断。

方法二:按"回车"键。这时必须通过KeyPress事件编程宋实现,有关程序段如下:

Private Sub某文本框_KeyPress(KeyAscii As Integer)

If KeyAscii=13 Then

另一控件.SetFocus

End If

End Sub

第三章 选择结构

3.1 知识要点

1.单边IF语句的两种格式和使用

(1)If<表达式>Then (2)If<表达式>Then<语句>

<语句块>

End If

其中,表达式可以是任何表达式,即算术、字符、关系和逻辑表达式,按表达式的值非。为True,0为False来判断。

多行的IF必须与EndlF配对;单行格式没有End If关键字。

2.双边IF语句的两种格式和使用

(1)If<表达式>Then (2)If<表达式>Then<语句1>Else<语句2>

<语句块1>

Else

<语句块2>

End If

3.多边IF语句的格式和使用

If<表达式1>Then

<语句块1>

ElseIf<表达式2>Then

<语句块2>

[Else

<语句块n+1>]

End If

Else If之间不能有空格。

4.IF语句的嵌套和使用

If<表达式1>Then

If <表达式11>Then

End If

End If

区分嵌套的层次方法,每个Endlf与它上面最接近的If配对。书写为锯齿形,便于区分和配对。

5.情况语句Select Case的格式和使用

格式:

Select Case<变量或表达式,

Case<表达式列表1>

<语句块1>

Case<表达式列表2>

<语句块>

[Case Else

<语句块n+1>]

End Select

其中,<变量或表达式>只能是对一个变量进行多种情况的判断;<表达式列表i>中不能山现"变量或表达式"中出现的变量。

6.条件测试函数的形式和使用

IIf(<条件表达式>,当条件为True时的值,当条件为False时的值)

Choose(&

vb基础教程我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。   编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。   Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。
BasicBasic BasicBasic正是微软公司售出的第一套件。 正是微软公司售出的第一套件。 Basic Basic Basic Basic 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 GW -Basic Basic Basic Basic 、 QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic 、QBasic QBasic QBasic QBasic QBasic 、Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic , 等其中Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 WindowsWindowsWindows Windows的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 序吗?通过学习 序吗?通过学习 序吗?通过学习 序吗?通过学习 VB 就能写出很多应用程序。 就能写出很多应用程序。 就能写出很多应用程序。 就能写出很多应用程序。 就
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pzhan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值