程序设计

Visual Basic

根据教材制作讲稿

2006.8.

第1章  程序设计的基本知识

第2章  设计一个简单的 Visual Basic 应用程序

第3章  Visual Basic 的基本语法

第4章  窗体

第5章 使用文本框和标签输入输出文字信息

第6章 命令按钮、复选框、单选按钮和框架

第7章 列表框、组合框和滚动条

第8章 对话框

第9章 图片框、图像框和计时器

第10章 菜单设计

第11章 文件系统控件

第12章 图形

第13章 多文档界面

第14章 建立和访问数据库

第15章 对象的链接与嵌入—使用 OLE 控件

第16章 Active X 控件

 

第1章  程序设计的基本知识

 

第2章  设计一个简单的 Visual Basic 应用程序

2.1 启动 Visual Basic(P7)

 1.常用对象:

工具箱中的控件、窗体、菜单、应用程序的部件、数据库。

 内部控件:工具箱中显示的控件,如按钮、单选、复选。

 对象属性(数据):描述对象的一组特征。

 对象行为方式(方法):对象的动作,动作会触发事件。

 2.控件工具箱

 1)标准工具箱

 添加控件:右击工具箱—部件—选中控件。

 2)选项卡

 定义工具箱选项卡:右击工具箱—添加选项卡—

选项卡名,如“画图”—把“标准”选项卡上的控件,

如“图形”“图像”“图像”框拖到“画图”选项卡上。

 3.对象属性

  设置对象属性两条途径:

 1)选定对象后在属性窗口设置对象属性。

例:新建工程—标准 EXE—工具箱—按钮—在窗体画按钮—

属性窗口—标题改为“按钮”。

 2)编程设置:对象名.属性名 = 属性值

例:设置标签控件的标题,Label1.Caption="好好学习 VB 6.0"

 4. 对象事件

 事件(Event):对象上所发生的事情。如单击、双击、装载、移动。

 5. 事件方法

 方法:要执行的动作。如,打印、显示窗体。

 调用对象方法:对象名.方法名,如图像刷新 Picture1.Refresh

2.2 一个简单的应用程序(P9)

 1.新建一个工程

 文件—新建工程—标准 EXE —打开。

 2.添加控件(P12)

 1)添加控件

工具箱—控件图标—在窗体工作区画控件,增加标签、按钮。

 2)控件的缩放和移动

 改变控件的大小:[Shif]+方向箭头。

 移动控件的位置:[Ctrl]+方向箭头。

 3)控件的布局

 选中多个控件—格式—对齐—对齐到网络。

 选中多个控件—格式—按网络调整大小。

 选中多个同类控件—格式—统一尺寸—两者都相同。

 3.设置属性(P14)

 设置窗体属性:标题“欢迎/时间”。

 设置控件属性:

 标签控件:

标题“显示欢迎词和时间”,边框凹进,背景绿色,黄字。

 按钮控件:

标题“欢迎(&H)”“时间(&T)”

“计算(&C)”“退出(&E)”。

 4.编写代码(P10)

 视图—代码窗口:对象、过程、代码。

 自动功能:在控件后输入小数点—双击属性名。

例:标签.标题 Label1.Caption

 视图—代码窗口—hy_sj.rar

 设置窗体属性:标题“欢迎/时间 班级 学号 姓名”。

对象:Form、事件:Load、过程代码:

Private Sub Form_Load()

Label1.Caption = "今天是:" & Chr(13) & Format(Date, "dddddd")

End Sub

对象:CmdWelcome、事件:Click、过程代码:

Private Sub CmdWelcome_Click()

Label1.Caption = "欢迎使用" & Chr(13) & "Visual Basic"

End Sub

对象:CmdTime、事件:Click、过程代码:

Private Sub CmdTime_Click()

Label1.Caption = "现在是北京时间:" & Chr(13) & Format(Time, "tttttt")

End Sub

对象:CmdCount、事件:Click、过程代码

Private Sub CmdCount_Click()

Label1.Caption = "计算清零"

End Sub

对象:CmdExit、事件:Click、过程代码:

Private Sub CmdExit_Click()

End

End Sub

2.3 开发 Visual Basic 应用程序的步骤(P18)

 1.设计用户界面

 1)窗体对象(Form)

 窗体的结构:

 标题栏、菜单、最大化/复原、最小化、关闭按钮、边框。

 创建窗体:工程—添加窗体—新建选项卡—窗体—打开。

 窗体的属性:

 窗体名称、标题、背景颜色、菜单。

 2.设置属性

 视图—属性窗口:对象下拉列表框、属性列表。

 3.编写事件过程代码

2.4 如何运行与保存程序(P19)

 1.工程窗口

 视图—工程资源管理器(工程窗口):

工程文件 .Vbp、窗体文件 .Frm、ActiveX 控件文件 .Ocx,

 工程窗口按钮:查看代码、查看对象、切换文件夹。

 2.运行工程

 工具栏—启动—打开窗体—单击“欢迎”“时间”按钮。

 3.工程的编译(P20)

 文件—生成 .exe 文件,如hy_sj.exe

 

第3章  Visual Basic 的基本语法

3.1.1 基本数据类型(P22)

Visual Basic 基本数据类型

代号 类型 字节 声明符
0    
1 Null    
2 integer(整型) 2 %
3 long(长整型) 4 &
4 Single(单精度实型) 4 !
5 Double(双精度实型) 8 #
6 Currency(货币型) 8 @
7 Date(日期型) 8  
8 Strimg(字符串型) 1(每字符) $
  Byte(字节型) 1 (byte)0
  Boolean(布尔型) 2

真(true)、假(false)

 
  Variant(通用型)    

 1.通用型(Variant)变量定义和使用

Dim a As Variant

a=3.5

a="BASIC"

 2.测定数据类型函数:VarType()

3.1.2 用户自定义类型(P24)

 1.定义学生数据类型:学号、姓名、年龄、地址

Type Students

StudentNo As Integer

Name As String * 8

Age As Integer

Address As String * 20

End Type

 2.定义学生数据类型的变量

Dim Student1 As Students

 3.引用学生数据类型变量的成员

Student1.Name

3.2.2 变量的声明(P25)

 Dim ... As

 Static ... As(静态变量,能保留过程中的值)

[例 3.1]

 计算.exe js.rar

Private Sub CmdCount_Click()

 Static a As Integer

 Dim b As Integer

 a = a+1

 b = b+1

Label1.Caption = "a = " & a & " b = " & b

End Sub

3.3 标准函数(P27)

1.数值函数

Sqr(x)平方根,Int(x)取整,Sin(x)正弦,Rnd(x)随机数。

2.转换函数

Chr $(N) ASCII 值转换为字符,

Str (N) 数值转换为字符,

Val (C) 字符转换为数值。

3.字符串函数

InStr($1,$2) 字符串1 中找字符串2 首字符的位置。

例:“ABCDEFGHIJKL”“EFGHIJ”

Mid $(字符串,p,n) 从 p 位置起取 n 个字符。

3.4 运算符和表达式

3.4.1 算术运算符(P30)

 指数:2^4 =16,

 整除:7\2 = 3,

 求余:7 Mod 2 = 1

3.4.2 关系运算符(P31)

 "abc" = "ABC",结果为假

 (2+3) > 4,结果为真

3.4.3 逻辑运算符

逻辑非:Not("a">"b"),结果为真

逻辑与:(5>=3) And (9>5),结果为真

逻辑或:(5>6) Or (9>5),结果为真

3.5 基本语句

3.5.1 赋值语句(P32)

 1.给变量赋值

Dim v As Integer

v = 123 * 4

 2.为对象的属性赋值

cmdExit.Caption="退出"

 3.为自定义型变量的各元素赋值

 给学生的学号、姓名、年龄、地址赋值

Type Students

StudentNo As Integer

Name As String * 8

Age As Integer

Address As String * 20

End Type

 

Dim Student1 As Students

Student1.StudentNo = "1"

Student1.Name = "林木森"

Student1.Age = 22

Student1.Address = "广东省佛山市"

3.5.2 条件语句

 1.单条件 If 语句(P33)

 If ... Then

 ... 

 End If

[例 3.4] 输入 a,b,c 3 个数,求最大数

 设置窗体属性:标题“求最大数 班级 学号 姓名”。

Private Sub CmdMax_Click()

Label1.Caption = "请输入 a,b,c 3个数,系统输出其中最大数。"

Dim a, b, c, max As Integer

a = InputBox("输入 a")

b = InputBox("输入 b")

c = InputBox("输入 c")

max = a

If b > max Then

max = b

End If

If c > max Then

max = c

End If

Label1.Caption = "输入:a=" & a & " b=" & b & " c=" & c _

& " 计算结果:Max =" & max

End Sub

 3.Select Case 语句(P36)

Select Case<变量>

  Case<值1>

   <语句1>

  Case<值2>

   <语句2>

  …………

 End Select

[例 3.6] 使用 Select Case 语句实现评定成绩等级

 设置窗体属性:标题“成绩等级 班级 学号 姓名”。

对象:Form、事件:Load、过程代码:

Private Sub Form_Load()

Label1.Caption = "今天是:" & Chr(13) & Format(Date, "dddddd")

End Sub

对象:CmdCount、事件:Click、过程代码:

Private Sub CmdCount_Click()

If Text1.Text <> "" Then
  score = Val(Text1.Text)
  Select Case score
    Case 0 To 59
       Label1.Caption = "你的成绩不及格"
    Case 60 To 69
       Label1.Caption = "你的成绩及格"
    Case 70 To 79
       Label1.Caption = "你的成绩中等"
    Case 80 To 89
       Label1.Caption = "你的成绩良好"
    Case 90 To 100
       Label1.Caption = "你的成绩优秀"
    Case Else
       Label1.Caption = "你输入的成绩有问题!"
   End Select

 End If

End Sub

对象:CmdExit、事件:Click、过程代码:

Private Sub CmdExit_Click()

End

End Sub

3.5.3 循环语句

 1.For 循环(P38)

  For 初值 终值 增量

  …………

  [Exit For]

 Next

例如:

 For c = 1 To 5 Step 1

  Print c;"This is a For-Next Loop"

 Next c

 2.Do 循环(P40)

  1)

 Do ... Loop

  2)先判型

 v = 0

 Do While v>=0

   ...

  Loop

  3)直到型

 v = 0

 Do Until v>10

   ...

  Loop

  4)后判型

 v = 0

 Do 

   ...

  Loop While v>=0

3.6 数组(P42)

 数组定义

例:Dim a(2) As String

 字符型一维数组 a,共有 3 个元素:a(0)、a(1)、a(2)。

例:Dim c(1,3 To 5) As Integer

 整型二维数组 c,共有 6 个元素:

 c(0,3)、c(0,4)、c(0,5)、 c(1,3)、c(1,4)、c(1,5)。

例 3.9 输入 10 个数,由小到大对数据排序。(P43)

 设置窗体属性:标题“数据排序 班级 学号 姓名”。

a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
10 5 30 45 2 9 52 19 52 3
a(i)

1-9

a(j)

2-10

    a(k)          

 

tmp = a(k)

a(k) = a(i)

a(i) = tmp

10 2
a(i) a(k)
tmp

Option Base 1

Private Sub cmdDataSort_Click()

Dim a(10) As Integer

Dim i, j, k As Integer

 

Print

Print " * * 请输入 10 个整数。"

Print

 

For i = 1 To 10

a(i) = InputBox("请输入整数:")

Print a(i);

Next i

Print

 

'数据排序

For i = 1 To 9

k = i

 

For j = i + 1 To 10

If a(j) < a(k) Then k = j

Next j

 

If k <> i Then

tmp = a(k)

a(k) = a(i)

a(i) = tmp

End If

 

Next i

 

Print

Print " * * 由小到大的数据排序结果:"

Print

 

For i = 1 To 10

Print a(i);

Next i

 

End Sub

数组变量用 array 函数赋初值

 a = Array(10,5,30,45,2,9,52,19,52,3)

3.7.1 子程序的定义(P45)

 工具菜单—添加过程—

名称,如 Display,

类型:子程序,

范围:公有的。

例 3.11 子程序根据调用过程传来的参数进行计算。(P47)

Private Sub compute(a As Single,b As Single)

  c1 = a + b

Print " c1 =";c1

End Sub

3.7.2 子程序的调用(P48)

 compute a1,b1

 值传递、地址传递方式(P49)

Private Sub subProg(ByVal a,ByRef b)

 地址传递方式会改变内存单元的存储内容。

3.7.3 用 Exit Sub 退出子程序(P50)

 If b = 0 then

    Exit Sub

 End If

3.7.4 Sub Main 程序

 工程—属性—通用—启动对象:Sub Main、Form1。

3.7.5 变量的作用域(P51)

 1.局部变量

过程内部定义,只在本过程内使用。

 2.窗体和模块级变量

在窗体或模块过程外定义的变量,在整个窗体或模块中有效。

 3.全局变量

在模块文件中的声明部分用 Global 或 Public 关键字声明。

3.8.1 函数的定义(P54)

 函数给调用程序返回一个值。

Private Function add(a As Single,b As Single)As Single

  add = a + b

End Function

3.8.1 函数的调用

 Sum = add(x(1),x(2))

Print " Sum =";Sum

3.9 文件的操作(P56)

3.9.1 顺序文件:顺序存取的文件。

3.9.2 顺序文件的打开和关闭(P57)

 Open,Close

3.9.3 顺序文件的写操作(P58)

 Print,Write

3.9.4 顺序文件的读操作(P60)

 Input,Line Input

3.9.5 随机文件:随机存取的文件。(P62)

3.9.6 随机文件的打开和关闭

 Open,Close

3.9.7 随机文件的写操作(P63)

 Put

3.9.8 随机文件的读操作(P64)

 Get

 

第4章  窗体

4.1 窗体设计举例

 1.窗体变小的程序(P69)

 Form1.Height = Form1.Height - 500

 Form1.Width = Form1.Width - 500

 单位:缇(twip)

 2.窗体变大的程序

 Form1.Height = Form1.Height + 500

 Form1.Width = Form1.Width + 500

例 4.2 窗体改变位置、还原位置。

 1)窗体初始位置

 Form1.Left = 2000

 Form1.Top = 2000

 2)窗体改变位置

 Form1.Left = 100

 Form1.Top = 100

 3)窗体还原位置

 Form1.Left = 2000

 Form1.Top = 2000

4.2.1 建立多窗体(P72)

 工程—添加新窗体—保存为 Form 2。

窗体像框图像3

窗体状态 点击窗体1 点击窗体2 点击窗体3 显示图像方式
Form1 Form1.Hide Form1.Hide Form1.Show 窗体:Form1.Picture
Form2 Form2.Show Form2.Hide Form2.Hide

像框:Image1.Picture

Form3 Form3.Hide Form3.Show Form3.Hide 像框:PictureBox1.Picture

 0)背景图像 Form1 Form 属性 Picture(P14)

 1)切换到窗体 2

Private Sub Form_Click()

Form1.Hide

Form2.Show

Form3.Hide

End Sub

 2)窗体图像 Form1.Picture(P74)

'装载窗体图像

Private Sub Form_Load()

Form1.Picture = LoadPicture("E:\VB\sstg.jpg")

End Sub

4.3.1 属性(Propertity)(P76)

 属性名:名词,如Picture,Text,Caption,Width。

 窗体属性:Picture

 文本框属性:Text

 命令按钮属性:Caption

4.3.2 事件(Event)(P77)

 事件名:动词,如Click, Load。

 窗体事件:单击、双击。

 命令按钮事件:单击。

4.3.3 方法(Method)(P78)

 方法名:动词,如Print,Move,Hide, Show。

 方法:Hide, Show

4.5.1 鼠标事件(P79)

 鼠标经过、按下状态窗体图像。

 1)鼠标经过状态窗体图像

Private Sub Form_MouseMove

(Button As Integer, Shift As Integer, X As Single, Y As Single)

Form1.Picture = LoadPicture("E:\VB\czxc.jpg")

End Sub

 2)按下状态窗体图像

Private Sub Form_MouseDown

(Button As Integer, Shift As Integer, X As Single, Y As Single)

Form1.Picture = LoadPicture("E:\VB\qdh_nr.jpg")

End Sub

例 4.5 像框图像

 1)鼠标逐一经过像框显示像框图像(P83)

Private Sub Image1_MouseMove

(Button As Integer, Shift As Integer, X As Single, Y As Single)

Image1.Picture = LoadPicture("E:\VB\B0509y_x1.jpg")

End Sub

Private Sub Image2_MouseMove

(Button As Integer, Shift As Integer, X As Single, Y As Single)

Image2.Picture = LoadPicture("E:\VB\B0509x_x1.jpg")

End Sub

 2)按钮切换像框图像

Private Sub CmdTrans_Click()

Image1.Picture = LoadPicture("E:\VB\qdh_nr_x.jpg")

Image2.Picture = LoadPicture("E:\VB\sstg_x.jpg")

End Sub

 

第5章 使用文本框和标签输入输出文字信息

5.1.1 使用文本框处理字符信息(P90)

 4.设置焦点(P94)

 TextData1.SetFocus

5.1.3 字体与字体的大小的控制(P105)

 Text1.FontName = "宋体"

 Text1.FontSize = 40

5.2 使用标签控件显示字符信息(P107)

 标签属性:

Alignment对齐,Caption显示内容,Left左边距,Top上边距。 

 

第6章 命令按钮、复选框、单选按钮和框架

.1.(P)

 

第7章 列表框、组合框和滚动条

.1.(P)

 

第8章 对话框

.1.(P)

 

第9章 图片框、图像框和计时器

.1.(P)

 

第10章 菜单设计

.1.(P)

 

第11章 文件系统控件

.1.(P)

 

第12章 图形

.1.(P)

 

第13章 多文档界面

.1.(P)

 

第14章 建立和访问数据库

.1.(P)

 

第15章 对象的链接与嵌入—使用 OLE 控件

.1.(P)

 

第16章 Active X 控件

.1.(P)