Visual Basic
Download
1 / 65

Visual Basic 程序设计 本书共有十章,介绍了 VB6.0 基本功能和使用方法。主要内容有: 1.          VB6.0 集成开发环境 - PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on

Visual Basic 程序设计 本书共有十章,介绍了 VB6.0 基本功能和使用方法。主要内容有: 1.          VB6.0 集成开发环境   2.          程序设计基础   3.          窗体和基本输出、输入 4.          常用控件   5.          工程和程序管理   6.          VB 应用程序的结构   7.          菜单程序设计   8.          窗体设计   9.          文件处理. 第一章 VB 语言概述 学习目标:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Visual Basic 程序设计 本书共有十章,介绍了 VB6.0 基本功能和使用方法。主要内容有: 1.          VB6.0 集成开发环境' - kasimir-hodge


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Visual Basic 程序设计

本书共有十章,介绍了VB6.0基本功能和使用方法。主要内容有:

1.          VB6.0集成开发环境

  2.          程序设计基础

  3.          窗体和基本输出、输入

4.          常用控件

  5.          工程和程序管理

  6.          VB应用程序的结构

  7.          菜单程序设计

  8.          窗体设计

  9.          文件处理


第一章 VB语言概述

学习目标:

了解:VB程序的基本特点,VB与其他可视化程序的区别

学习要点:

可视化设计,事件驱动编程。

1.1 一个示例

见程序CH1例

1.2 VB应用程序的基本特点

1.  可视化设计

“所见即所得”


2.  事件驱动编程

由用户编写的代码控制某些事件(如鼠标单击,键盘键入等)的响应,这就是事件驱动编程。

1.3 VB与其他可视化编程工具的区别

1.  VB不支持虚类、多态性和类的继承

2.  VB简单易学,变量定义不太严密,但同样也支持网络编程和数据库编程。


第二章 VB6.0集成开发环境

学习目标:

1.  掌握主窗口、窗体窗口、工具箱窗口、属性窗口、工程资源管理器窗口的使用;

2.  理解对象与事件驱动的概念

3. 了解应用程序开发示例

学习要点:

VB6.0的集成开发环境,对象与事件驱动概念,使用VB6.0开发应用程序的基本方法。


2.1 VB6.0中文版的启动与退出

2.2 VB6.0 的集成开发环境

工具箱、窗体、工程资源窗口、属性窗口、窗体布局窗口、和代码编辑窗口

1.  菜单栏

2.  工具栏

3.  工具箱

4.  代码编辑器窗口

代码窗口有四部分组成:

A. 标题条

B. 对象框

C. 事件框

D.代码框


1.  工程窗口

2.  属性窗口

3.  窗体

2.3 对象与事件驱动

1.世界上存在的任何具体的事物都可以称之为对象。

2.类:是具有相同性质的对象的集合。

3.前者是具体的,后者是抽象的。


2.3.1 属性、方法和事件概述

一个具体的对象具有一些特定的属性、方法和事件。

可见P20 的气球事例:

设置气球属性:

Balloon.Color=red

Balloon.diameter=10

Balloon.inflated=true

在属性窗口中设置

调用气球对象的方法是:

balloon.inflate

balloon.deflate

balloon.rise 5


气球对一个对象的响应:

sub balloon_puncture()

balloon.deflate

balloon.makenoise”bang”

balloon.inflated=false

balloon.diameter=1

end sub

2.3.2 事件驱动

1.  窗口、事件和消息

2.  事件驱动模型


2.4 VB6.0应用的基本开发方法

2.4.1 交互式开发

2.4.2 事件驱动应用程序的工作方式

事件驱动应用程序中的典型事件序列

●启动应用程序,装载和显示窗体。

●窗体(控件)接收事件。

●如果在相应的事件过程中存在代码,就执行代码。

● 应用程序等待下一次事件。


2.5 应用程序开发示例

创建VB应用程序有三个步骤:

1.  创建应用程序界面

2.  设置属性

3.  编写代码

见书本上具体程序


第三章 程序设计基础

学习目标:

1.  掌握数据类型、表达式、操作符的正确使用

2.  理解程序流程的控制、常见标准函数

3.  了解简单的应用程序开发

学习要点:

数据类型、表达式和运算符,程序流程的控制结构,常见标准函数。

VB的程序设计是面向对象的可视化程序设计。

模块分有窗体、类和标准模块三种类型。


3.1 数据类型

常见的有两种类型:数值和字符串

VB标准数据类型简要说明P33表3-1

VB中的数据以四种形式存储:变量、常量、数组和记录。

名字 能够存储的数据

变量 一个可以改变的值

常量 一个固定的值

数组 多个数据类型(包括VARIANT数据类型)的值

记录 多个不同数据类型的数据值


3.1.1            变量与常量

1.  变量

变量是指在程序运行中其值可以改变的那些量。

(1)       变量命名规则

①   第一个字符必须是字母

②   后接字符可以是字母、数字、下划线。但不可以有小数点、空格以及!,@,#,$,%,和&等变量类型说明符。

③   最后一个字符可以是类型说明符(!,@,#,$,%,&),当然类型说明符也可以省略。

④   变量名最长可达255个字符。

⑤   不能与保留字重名


(1)       声明变量

有两种方法:隐式声明和显式声明(Option Expilicit)

(2)       使用DIM语句声明变量

(3)       全局变量的声明

2.  常量

常量指在程序运行过程中,其值不能改变的量。

①   系统内部常量

②   符号常量


②     符号常量

定义语法如下:

[Public | Private]Const 变量名 [As 数据类型]=表达式

说明:

①     用CONST声明的常量在程序运行的过程中是不能被重新赋值的;

②     在常量声明的同时要对常量赋值;

③     可以为声明的常量指定类型;

在使用一常量为另一常量初始化时注意循环引会出错。


3.1.2 整数类型数据

1.  整型(integer)

2.  长整型(long)

3.1.3 浮点类型数据

1. 单精度型(single)

2. 双精度型(double)

3.1.4 布尔型(Boolean)

3.1.5 货币型(currency)

3.1.6 字符串(string)

1. 可变长字符串

2. 定长字符串


3.1.7 VARIANT 类型数据

它能够表示所有系统定义类型的数据。

注意区分EMPTY和NULL

3.1.8 DATE类型数据

3.1.9 数据类型转换

数据类型转换函数P41表3-4

3.1.10 数组

数组可以用Dim,Private,Public或Static来声明

1.数组定义语法如下:

Dim数组名([下标下界 TO] 下标上界])[AS数据类型]

用[]括起的内容可以选择使用。


2.OPTION BASE语句(用来声明数组下标的缺省下界)

OPTION BASE语句的语法如下:

OPTION BASE{0 | 1}

说明:

①     数组名命名规则和变量名的相同

②    数组名后用圆括弧括起来的,不能用方括弧,不同与C语言

③     下标的下界必须不能大于其上界

可以用变量名或常数名(以及实数)作下标的边界


VB中数组又可分为两种数组:静态数组和动态数组

3.静态数组

静态数组是指数组元素的个数是固定不变的。

有一维数组和多维数组

多维数组的语法格式为:

DIM数组名([下标边界列表]) [AS 数据类型]

下标边界列表是指用逗号分开的数组各维的下标边界,即

[下标下界 TO]下标上界,[下标下界 TO]下标上界,。。。。。。[下标下界 TO]下标上界


4.动态数组

在声明时,不给出维数列表就是将数组声明为动态数组。

例如:DIM Myarry()AS integer

在使用动态数组前,必须使用ReDim语句把它重新定义。

把上面声明的重新定义:

ReDim MyArry(10,10)

ReDim 可重复定义,维数最大是60,但是在重复定义时要注意数组每维的元素可变,但不能改变维数。

Dim MyArry()As Single ‘声明动态数组

ReDim MyArry(30,20,10) ‘重新定义数组

ReDim MyArry(50,23,21) ‘再次重新定义数组


在使用ReDim重新定义时,会使所有的数组元素的值消失,而使用Preserve可以保留数据。但要注意只有在一维数组和多维数组只改变最后一维的大小的这一类是,才能保留全部数据,否则出错。

如:ReDim MyArry(50,23,21)

ReDim Preserve MyArry(50,23,50)


5.LBound函数和Ubound函数

两者都是返回一个LONG型的数据,前者得到的值为指定数组维数可用的最小下标,后者是最大下标。

语法是:

LBound(数组名[,指定的维数])

UBound(数组名[,指定的维数])

1,  表示第一维,2,表示第二维,如此类推。


如:

DIM A(1 TO 100,3,-3 TO 4)AS INTEGER

若Lbound(A,1) 返回为 1

Lbound(A,2) 0

Lbound (A,3) -3

Ubound(A,1) 100

Ubound(A,2) 3

Ubound(A,3) 4


6.数组的高级功能

数组的内容可复制

可通过每次复制一个字节来实现,程序如下:

Sub ByteCopy (oldCopy()As Byte,newCopy()As Byte)

‘参数oldCopy()是源数组,newCopy()是目的数组。

Dim I As Integer

ReDim newCopy(Lbound(oldCopy)To Ubound(oldCopy))

‘重新定义动态数组

For I=Lbound(oldCopy)To Ubound(oldCopy)‘循环赋值

newCopy(I)=oldCopy(I)

Next

End Sub


(1)       维数、数据类型不同的数组赋值考虑的几个因素

赋值符左边的数组类型:静态数组或动态数组

赋值符左边数组的维数是否和赋值符右边数组的维数匹配

赋值符两边数组的每一维的数组元素个数是否匹配

赋值符两边所有元素的数据类型必须是相容的。

详细的见P46的表3-6

(2)       编写返回数组的函数

看书P46-47程序


3.1.11 记录类型(用户自定义类型) 维数、数据类型不同的数组赋值考虑的几个因素

记录,又称“用户自定义数据类型”,是由多个变量构成的结构化的数据类型。变量称做记录的的成员。成员可以是不同数据类型的变量(包括记录类型)

1.  记录类型定义

记录数据类型用Type。。。End Type语句定义。

如:Type Student

Num As Integer

Name As String *20

Sex As String*1

Age As Integer


Score As Single 维数、数据类型不同的数组赋值考虑的几个因素

Addr As String*30

End Type

语法格式为:

   [Private Public]Type 记录类型名

      成员表列

End Type

其中:public 是可选的,用于声明可在所有的工程的所有模块的任何过程中使用的记录类型。

Private 是可选的,用于声明只能在包含该声明的模块中使用的记录类型。


成员列表是该记录数据类型中的各个成员的集合。成员列表是该记录数据类型中的各个成员的集合。

  每个成员都要进行类型声明,

   成员名 As 数据类型

Type 语句只能在模块的声明部分使用。

具体的在书P49表3-7用户自定义变量类型的声明位置及作用范围

1.  定义记录类型变量

定义一个记录类型后,可用DIM(或PUBLIC,STATIC)来声明拥有这种数据类型的变量。

如:DIM Student1,Student2 As Student


1.  赋值个检索值成员列表是该记录数据类型中的各个成员的集合。

类似对象属性的设置和获取。如:

MySystem..CPU=”486”

If MySystem.Purchase>#1/1/92# Then

了解嵌套记录

2.  记录数组

一个记录变量是一组数据。类似这样的就是记录数组:

dim students(1 to 2) as student


3.2 运算符与表达式成员列表是该记录数据类型中的各个成员的集合。

运算符是用来对运算对象进行各种运算的操作符号,而表达式是由多个运算对象和运算符组合在一起的合法算式。

VB中运算符共分为五类:算术运算符、连接运算符、关系运算符、逻辑运算符和特殊运算符。

3.2.1算术运算符

1.^(幂运算符)

在幂运算符右边的数或表达式是次方数。

2^3=8

2.+(加或取正值)

3.- (减或取负值)


4.* (乘运算符)成员列表是该记录数据类型中的各个成员的集合。

2*5=10

5./ (除)

1.  5/2。5=1。8

6.\ (整数除法)

5\3=1

7.MOD(求余)

5 MOD 3=2


3.2.2 连接运算符成员列表是该记录数据类型中的各个成员的集合。

VB中有&和+,用于字符串的连接。

Dim mystr

Mystr =”hello”&”world” ‘返回”hello world”

Mystr=”check”&123&”check” ‘返回”check 123 check”

Mystr=”hello”+”world” ‘返回”hello world”

两者的区别要注意:

&强制两个表达式作字符串连接;

+两边的表达式中混着数值字符串及数值的话,其结果会是数值的求和,若是字符串则进行连接。

因此为了避免混淆,可用&运算符进行字符串连接。


3.2.3 关系运算符成员列表是该记录数据类型中的各个成员的集合。

关系运算符用来比较两个数或表达式的运算符,用来确定表达式之间关系,运算的结果有true、false和null三种。

使用方法:

result=expression1 comparisonoperator expression2

(结果变量=表达式1 关系运算符 表达式2)

具体关系运算符使用的说明P54表3-9

表达式的比较方式P54表3-10

如果两个比较的表达式都是可变类型的表达式,则它们内部数据的类型决定了比较方式。


3.2.4 逻辑运算符成员列表是该记录数据类型中的各个成员的集合。

1.  And(逻辑与)运算符

A and b 当且仅当 a,b同为true时,结果为true,否则为false

Dim a,b,c,d,mycheck

A=10: b=8:c=6:d=null

Mycheck=a>b and b>c ‘返回true

Mycheck=b>a and b>c ‘返回false

Mycheck=a>b and b>d ‘因为d的值为null,返回null

Mycheck=a and b ‘返回8(位比较的结果)


2.  成员列表是该记录数据类型中的各个成员的集合。Eqv(逻辑相等)运算符

A eqv b a,b 相同时,结果为true,否则结果为false

3.  imp(逻辑隐含)运算符

a imp b 当且仅当a 为true ,同时 b为false时,结果为false, 否则结果为true

4.  Not (逻辑非)运算符

Not a 若a 为true,则结果为false,否则结果为true

5.  Or(逻辑或)运算符

A or b 当且仅当a,b 同时为false时,结果为false,否则结果为true

6.  Xor(逻辑异或)运算符

A xor b a,b 不同时,结果为true,否则结果为false


3.2.5 特殊运算符成员列表是该记录数据类型中的各个成员的集合。

VB中两种特殊运算符:is 和like

1.  Is 运算符

Is运算符用来比较两个对象的引用变量,返回结果为true或false

语法格式:

result=object1 is object2

如果变量object1和object2两者引用相同的对象,则result为true;否则,result为false.


举例说明:成员列表是该记录数据类型中的各个成员的集合。

dim myobject,yourobject,thisobject,thatobject,otherobject,_

mycheck

… ‘给变量赋值

set yourobject=myobject

set thisobject=myobject

set thatobject=otherobject ‘假设myobject<>otherobject

mycheck=yourobject is thisobject ’返回true

mycheck=thatobject is thisobject ‘返回false


2.  成员列表是该记录数据类型中的各个成员的集合。Like 运算符

Like 运算符用来比较两个字符串,把一个字符串表达式与一个给定模式进行匹配,匹配成功返回结果true,否则返回结果false.

语法格式:

result=string like pattern

使用like 应注意的方面有两点P58

掌握like 的具体应用p59


3.2.6 运算符的优先级成员列表是该记录数据类型中的各个成员的集合。

算术运算符、连接运算符、比较运算符和逻辑运算符

从 高 到 低

在所有的比较运算符具有相同的优先级;算术运算符和逻辑运算符,还要进一步划分。P60表3-17

3.2.7 语句

1.  赋值语句

语法规则:

[let] 变量或属性=表达式

set 变量名=表达式


在赋值时要注意数据类型的匹配问题。成员列表是该记录数据类型中的各个成员的集合。

如:dim a as integer

a=”hello world”

因为类型不匹配,就会导致错误。若是variant类型的变量,就不会发声类似的事情了。

Dim A

A =”hello world”

A=5


2.  注释语句成员列表是该记录数据类型中的各个成员的集合。

注释的方法有两种:使用rem关键字或撇号(’)

两者的区别是,使用rem关键字,则必须使用冒号(:)与前面的语句隔开。

如:dim I as integer

dim sum as integer

sum=1

for I=1 to 5:rem 求5的阶乘

sum=sum*1

next

print sum


1.  程序续行成员列表是该记录数据类型中的各个成员的集合。

当一条语句太长,要将它分多行书写时,可在行尾加一个空格和一个续行符(下划线_)表示该语句在本行未写完,转到下一行继续。

2.  一行中的多条语句

多条语句可以写在一行,语句间加冒号(:)隔开。

如:sum=1: sum2=6


3.3 程序流程的控制成员列表是该记录数据类型中的各个成员的集合。

3.3.1 跳转

跳转是从程序的某一行到另一行的直接转移。

两种形式:无条件跳转和有条件跳转

使用goto 语句实现跳转为无条件跳转

形式:

goto 语句标号

或 goto 行号

语句标号或行号必须存在,否则会出错。语句标号的命名规

则与变量名相同。

合法: goto ab, goto a1, goto 123

非法: goto a%, goto 10a


3.2.2 分支成员列表是该记录数据类型中的各个成员的集合。

分支是根据一定的条件来决定执行何种操作。VB中可由以下语句实现: if…then

if…then…end if

if…then…else

if…then…elseif

select case

if 结构的语句,其判断条件表达式是true 或false.一个为零的数值为false,而任何非零数值都被看作true.。如条件表达式是变量,则变量必须是true或false。


如:成员列表是该记录数据类型中的各个成员的集合。if visible=ture then

其中可以省略=ture,让VB自动检测visible是ture或false。

If visible=false then 可写成 if not visible then

1.       if …then语句

语法规则:

if 条件式 then 语句

若条件为真,则执行语句,要执行多条语句则这些语句要在同一行,并用冒号隔开;为假,则不执行。

例子P63


2.       if…then…end if成员列表是该记录数据类型中的各个成员的集合。语句

语法规则:

if 条件式 then

程序段

end if

若条件式为真,则执行程序段,否则执行end if 后的语句


3.       成员列表是该记录数据类型中的各个成员的集合。if…then…else语句

语法规则:

if 条件式 then

程序段1

Else

程序段2

end if

若条件式为真,则执行程序段1,为假,则执行程序段2。


4.       成员列表是该记录数据类型中的各个成员的集合。if…then…elseif语句

语法规则:

if 条件式1 then

程序段1

elseif 条件式2 then

程序段2

。。。。。。

elseif 条件式n then

程序段n

[else

默认程序段]

end if

若条件式1为真,则执行程序段1,为假,则检查条件式2是否为真,为真则执行程序段2,为假则检查条件式3,依次类推。。。。。。,知道条件式n,若条件式n为假,则若存在[else 默认程序段]则执行默认程序段,否则跳到end if 后的语句。


5.       成员列表是该记录数据类型中的各个成员的集合。select case语句

语法规则:

select case 测试表达式

case 表达式1

程序段1

[case 表达式2

程序段2]

……

[case else

默认程序段]

end select

注意:case 后面的表达式可以用to 关键字,指定数值的范围。较小的数在to的前面。


P65成员列表是该记录数据类型中的各个成员的集合。测试表达式范围的示例

表达式 例子

关系 case is>=10

相等 case is=1.2

相等(暗含=) case 1.2

明确的范围 case -7 to 7

多重组合 case is<>21,is<100

例子P65


3.3.3 循环成员列表是该记录数据类型中的各个成员的集合。

循环是一组重复执行的指令,重复次数由条件决定。

无条件的循环要避免发生。

常用的几类循环语句

do…loop

for…next

for each…next

while…wend


1.成员列表是该记录数据类型中的各个成员的集合。do..loop

它有两种形式:

(1)当型循环(先判断,后执行)

语法规则:

do [{while | until}条件式]

[程序段]

[if 条件式 then exit do] ‘在特定的条件下退出循环

[程序段]

loop


(2)成员列表是该记录数据类型中的各个成员的集合。直到型循环(先执行,后判断)

语法规则:

do

[程序段]

[if 条件式 then exit do] ‘在特定的条件下退出循环

[程序段]

loop [{while | until}条件式]

◆条件式是可选的参数,它的值为ture或false,若条件式的值是null,则会被当做false.

◆Exit do 可随时跳出do…loop循环。


Do…loop 成员列表是该记录数据类型中的各个成员的集合。的四种结构

1.do while 条件式

[程序段]

loop

当条件式为真时,循环继续进行,直到条件式变为假为止。

例子P67

2.do until 条件式

[程序段]

loop

当条件式为假时,循环继续进行,直到条件式变为真为止。


3成员列表是该记录数据类型中的各个成员的集合。 .    do

[程序段]

loop while 条件式

当条件式为真,循环继续进行,条件式为假则停止。

4.    do

[程序段]

loop until 条件式

当条件式为假时,循环继续进行,条件式为真了就停止。


2.成员列表是该记录数据类型中的各个成员的集合。for…next

不知道循环的次数可用do.. loop ,知道次数可用for…next.

语法规则:

for 计数器=初值 to 终值 [step 增量]

语句

[if 条件式 then exit for] ‘在特定的条件下退出循环

[语句]

next [计数器]

说明:循环开始时,计数器变量的值为初值,每循环一次,它的值要加一次增量的值。


例:成员列表是该记录数据类型中的各个成员的集合。private sub form_click()

dim I, j, counter as integer

I=6 : j=1 ‘同一行有多条语句,用冒号分开

For counter=I to j step –1

Print counter

Next counter

End sub


3.成员列表是该记录数据类型中的各个成员的集合。for each …next 指定集合或集合中的每个元素重复执行某个程序段,不需要事先知道数组或集合中元素的个数。

语法规则:

for each 元素in 数组或集合

[程序段]

[if 条件式 then exit for]

[程序段]

next [元素]

注意:这里的元素只能是variant类型或对象类型。循环中的数组不能是记录类型的数组。


例:统计窗体中的所有控件成员列表是该记录数据类型中的各个成员的集合。

for each I in form1.contiols

I .enabled=false

Next I

将数组A中的各元素的值显示在当前的窗体中

for each I in A()

print I

next I


4.成员列表是该记录数据类型中的各个成员的集合。while..wend

语法规则:

while 条件式

程序段

wend

只要条件式为真,则所有的语句都会执行,一直到wend.

5.循环的嵌套

一个循环体内又包含另一个完整的循环体结构称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环的嵌套。

前面的四种循环可互相嵌套。


例:实现求运算结果1!+2!+3!+4!并打印结果成员列表是该记录数据类型中的各个成员的集合。

dim I, j as integer

dim sum1,sum2 as integer

sum1=0

for I=1 to 4

sum2=1

for j=1 to I

sum2=sum2*j

next j

sum1=sum1+sum2

next I

print sum1


3.3.4 成员列表是该记录数据类型中的各个成员的集合。doevents函数与闲置循环

P71了解怎么会产生闲置状态。

为了避免CPU不能即使响应其它事件,可采用两种方法:

一.使用doevents函数

语法说明:

doevents()

它的功能是返回VB应用程序中打开窗体的数目,它会将控制权传给操作系统。

在循环体中如果使用了doevents()函数,则在循环执行过程中若发生定时器事件或编辑框的输入事件发生时,系统会给以及时响应。

程序例CH3(3-1)。


二.写成闲置循环成员列表是该记录数据类型中的各个成员的集合。

在“空闲时间”里执行的循环,就称为闲置循环。

编写闲置循环P74-75。程序例CH3(3-2)。

3.4 常见标准函数

●交互式函数

●类型转换函数

●数学函数

●日期和时间函数

●字符串函数

●目录和文件函数


3.4.1 交互式函数成员列表是该记录数据类型中的各个成员的集合。

用来和用户进行交互的函数。如:Msgbox函数和Inputbox函数

3.4.2 类型转换函数

3.4.3 数学函数

用来完成特定的数学计算。

P76函数表3-19

3.4.4 日期和时间函数

P76表3-20

3.4.5 字符串函数

用来完成对字符串的操作和处理。P77表3-21


3.4.6 目录和文件函数成员列表是该记录数据类型中的各个成员的集合。

操作文件和目录,如创建目录、删除文件和读写文件等。

P77表3-22

3.5 应用示例

设计一个计时秒表

程序例CH3(3-3)

学生自行上机完成


ad