程序设计
Visual Basic
根据教材制作讲稿
2006.8.
第1章 程序设计的基本知识
第2章 设计一个简单的 Visual Basic 应用程序
第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.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]
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 " * * 请输入 10 个整数。"
For i = 1 To 10
a(i) = InputBox("请输入整数:")
Print a(i);
Next i
'数据排序
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 " * * 由小到大的数据排序结果:"
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.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。
窗体状态 | 点击窗体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.1.1 使用文本框处理字符信息(P90)
4.设置焦点(P94)
TextData1.SetFocus
5.1.3 字体与字体的大小的控制(P105)
Text1.FontName = "宋体"
Text1.FontSize = 40
5.2 使用标签控件显示字符信息(P107)
标签属性:
Alignment对齐,Caption显示内容,Left左边距,Top上边距。
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)
.1.(P)