VB实例源码
课前体验
Private Sub Form_Click()
For i = 1 To 10
For j = 1 To i
Print "* ";
Next j
Next i
End Sub
【例3-1】
Private Sub Form_Click()
c1$ = Chr$(13) + Chr$(10)
msg1$ = "请输入您的名字: "
msg2$ = "输入后按回车键"
msg3$ = "或单击“确定”按钮"
msg$ = msg1$ + c1$ + msg2$ + c1$ + msg3$
name$ = InputBox(msg$, "InputBox 函数示例", "张三")
Print name$
End Sub
【例3-2】
Private Sub Form_Click()
Msg1$=”Are you Continue to?”
msg2$=”Operation Dialog Box”
r=MsgBox(msg1$,34,msg2$)
Print r
End Sub
【例3-3】编写程序,用MsgBox函数判断是否继续执行。
Private Sub Form_Click()
msg$ = "请确认此数据是否正确"
Title$ = "数据检查对话框"
x = MsgBox(msg$, 19, Title$)
If x = 6 Then
Print x * x
ElseIf x = 7 Then
Print "请重新输入"
End If
End Sub
【例3-5】
Private Sub Form_Click()
Print: Print
FontName = "隶书"
FontSize = 16
Print " 姓名"; Tab(8); "年龄"; Tab(16); "职务";
Print Tab(24); "单位"; Tab(32); "籍贯"
Print "吴大明"; Tab(8); 25; Tab(16); "职员"; Tab(24); "人事科"; Tab(32); "北京"
End Sub
【例3-6】
Private Sub Form_Click()
X = InputBox("请输入成绩", "学生成绩录入", "00")
Print x
End Sub
【例3-7】
Private Sub Form_Click()
Dim x As Single, y As Single
x=InputBox(“请输入x的值”)
If x>0 Then y=1 ElseIf x=0 Then y=0 Else y=-1
Print “x=”; x ,”y=” ; y
End Sub
【例3-8】
Private Sub Form_Click()
Dim msg, UserInput
msg = "请输入一个字母或0~9之间的数字."
UserInput = InputBox(msg) ‘输入一个字母或数字
If Not IsNumeric(UserInput) Then ‘判断是否是数字
If Len(UserInput) = 1 Then ‘不是数字时,判断输入的字符串长度是否为1
Select Case Asc(UserInput) ‘判断输入字母的ASCII码值
Case 60 To 90 '在60-90之间为大写字母
msg = "你输入的是一个大写字母'"
msg = msg & Chr(Asc(UserInput)) & "'。"
Case 97 To 122 '小写字母
msg = "你输入的是一个小写字母'"
msg = msg & Chr(Asc(UserInput)) & "'。"
Case Else
msg = "你没有输入字母或数字."
End Select
End If
Else
Select Case Val(UserInput) '将输入的数值型字符转换为数值
Case 1, 3, 5, 7, 9 '如果是奇数
msg = UserInput & " 是一个奇数。"
Case 0, 2, 4, 6, 8 '如果是偶数
msg = UserInput & " 是一个偶数。"
Case Else '出界
msg = "你输入的数字不在0~9范围内"
End Select
End If
MsgBox msg
End Sub
【例3-8】
Private Sub Form_Click()
Dim msg, UserInput
msg = "请输入一个字母或0~9之间的数字."
UserInput = InputBox(msg) ‘输入一个字母或数字
If Not IsNumeric(UserInput) Then ‘判断是否是数字
If Len(UserInput) = 1 Then ‘不是数字时,判断输入的字符串长度是否为1
Select Case Asc(UserInput) ‘判断输入字母的ASCII码值
Case 60 To 90 '在60-90之间为大写字母
msg = "你输入的是一个大写字母'"
msg = msg & Chr(Asc(UserInput)) & "'。"
Case 97 To 122 '小写字母
msg = "你输入的是一个小写字母'"
msg = msg & Chr(Asc(UserInput)) & "'。"
Case Else
msg = "你没有输入字母或数字."
End Select
End If
Else
Select Case Val(UserInput) '将输入的数值型字符转换为数值
Case 1, 3, 5, 7, 9 '如果是奇数
msg = UserInput & " 是一个奇数。"
Case 0, 2, 4, 6, 8 '如果是偶数
msg = UserInput & " 是一个偶数。"
Case Else '出界
msg = "你输入的数字不在0~9范围内"
End Select
End If
MsgBox msg
End Sub
【例3-10】
Sub Form_Click()
Dim N As Integer
n = InputBox("Enter N:") ‘输入N的值
k = 1
For i = 1 To N ‘循环N次,计算出N!
k = k * I
Next i
Print N;”!=”;k ‘数据输出
End Sub
【例3-12】
Dim S, N
S = 0: N = 0
Do While S <= 100
N = N + 1
S = S + N
Loop
Print S, N
【例3-13】
Private Sub Form_Click()
Dim char As String
Count = 0
char = InputBox("请输入一个字符")
While char <> "?"
Count = Count + 1
char = InputBox$("请输入一个字符")
Wend
Print "输入的字符数是:"; Count
End Sub
【例3-14】
Private Sub Form_Click()
Print " *";
For i = 1 To 9
Print Tab(i * 6); i;
Next i
For j = 1 To 9
Print j;
For k = 1 To j
Print Tab(k * 6); j * k; " ";
Next k
Next j
End Sub
第4章
课前体验
(1)假定用来输入数学成绩的文本框名称为Text1,该文本框的LostFocus事件过程如下:
Private Sub Text1_LostFocus()
If Val(Text1.Text) < 0 Or Val(Text1.Text) > 100 Then
Text1.Text = ""
Text1.SetFocus
End If
End Sub
(2)其他文本框的LostFocus事件类似。
(3)假定按钮名称为Command1,该按钮的Click事件过程如下:Private Sub Command1_Click()
If Check1.Value = 1 Then Sum = Sum + Val(Text1.Text)
If Check2.Value = 1 Then Sum = Sum + Val(Text2.Text)
If Check3.Value = 1 Then Sum = Sum + Val(Text3.Text)
If Check4.Value = 1 Then Sum = Sum + Val(Text4.Text)
If Check5.Value = 1 Then Sum = Sum + Val(Text5.Text)
Text6.Text = Sum
End Sub
【例4-1】
Private Sub Command1_Click() ‘在其单击事件中编程For i = 1 To 6 ‘外循环,控制输出几行For j = 1 To i ‘内循环,控制输出几列
Print " * ";
Next j
Print ‘换行
Next i
End Sub
【例4-2】
Private Sub Text1_Change()
Text2.Text = LCase(Text1.Text)
Text3.Text = UCase(Text1.Text)
End Sub
【例4-3】
Private Sub Check1_Click()
Text1.FontUnderline = Not Text1.FontUnderline
End Sub
Private Sub Check2_Click()
Text1.FontItalic = Not Text1.FontItalic
End Sub
Private Sub Option1_Click()
Text1.Font = "黑体"
End Sub
Private Sub Option2_Click()
Text1.Font = "宋体"
End Sub
【例4-4】
Private Sub Command1_Click()
If Option1 Then
Text1.FontName = "宋体"
Else
Text1.FontName = "黑体"
End If
If Option3 Then
Text1.FontSize = 8
Else
Text1.FontSize = 10
End If
End Sub
Private Sub Command2_Click()
End
End Sub
【例4-5】
Private Sub Form_Load()
‘在窗体的Load事件中输入列表框的各个项目
lstBooks.AddItem "计算机应用基础"
lstBooks.AddItem "操作系统"
lstBooks.AddItem "数据结构"
lstBooks.AddItem "网络技术基础"
End Sub
Private Sub cmdAdd_Click()
‘单击添加命令按钮时将文本框中输入的内容添加到列表框中
lstBooks.AddItem txtItem
txtItem = ""
End Sub
Private Sub cmdDelete_Click()
‘删除列表框中选中的项目
lstBooks.RemoveItem lstBooks.ListIndex
End Sub
Private Sub cmdModify_Click()
‘所选项目显示在文本框中,等待修改
txtItem.Text = lstBooks.Text
cmdAdd.Enabled = False
cmdDelete.Enabled = False
cmdModify.Enabled = False
cmdModify_OK.Enabled = True
End Sub
Private Sub cmdModify_OK_Click()
‘所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容lstBooks.List(lstBooks.ListIndex) = txtItem
cmdModify_OK.Enabled = True
cmdAdd.Enabled = True
cmdDelete.Enabled = True
cmdModify.Enabled = True
txtItem = ""
End Sub
【例4-6】
Private Sub Form_Click()
Picture3.Picture=Picture1.Picture
Picture1.Picture=Picture2.Picture
Picture2.Picture=Picture3.Picture
Pciture3.Picture=LoadPicture() …把第3个图片框设置为空
End sub
【例4-7】
Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
End Sub
【例4-8】
Private Timer1_Timer()
Labe1.Caption=Time$
End Sub
实训
Private Sub Command1_Click()
Debug.Print "姓名:"; Text1.Text
Debug.Print "出生年月:"; Text2.Text
Debug.Print "籍贯:"; Text3.Text
If Option1.Value Then Debug.Print "性别:"; "男"
If Option2.Value Then Debug.Print "性别:"; "女"
Debug.Print "民族:"; Combo1.Text
If Check1.Value = 1 Then Debug.Print "健康" Else Debug.Print "不健康"
Debug.Print "职称:"; Combo3.Text
Debug.Print "工资:"; Text4.Text
Debug.Print "外语熟练程度"; HScroll1.Value
Debug.Print "简历:"; Text5.Text
End Sub
第5章
课前体验
Private Sub Command6_Click()
Const n = 10 ‘定义常量n的值为10
Max = 0: K = 0 ‘最高分及所在位置赋初值
For i = 1 To n
b(i) = InputBox("请输入第"& i &"个同学的成绩",求最高分) ‘输入成绩
If b(i) > Max Then
Max = b(i)
K = I ‘将第i个成绩与最高分Max相比,如果比最高分高,则保存起来 End If
Next i
Print"最高分是第"& K &"个同学,其成绩是:"& Max
End Sub
【例5-1】
Option Base 1
Private Sub Command1_Click()
Dim a(3) As Integer
a(1) = 1: a(2) = 3: a(3) = 5
Print a(1)
Print a(2)
Print a(3)
End Sub
【例5-2】
For i=1 To 10
b(i) = InputBox("请输入第" & i & "个数")
Next i
【例5-3】
For i=1 To 2
For j=1 To 2
b(i,j) = i+j
Next j
Next i
【例5-4】
Dim S(3,2) As Integer
程序如下:
For i = 0 To 3
Print Tab(5); …输出位置定位
For j = 0 To 2
S(i, j) = i * 2 + j ‘给各元素赋值
Print S(i, j); Next j
Print ‘换行
Next i
【例5-5】
Private Sub Form_Click()
Dim s(5) As Integer '定义数组S
Const n = 5
For i = 1 To n
s(i) = Val(InputBox("请输入第" & LTrim$(Str$(i)) & "个数", 数据排序))
‘输入n 个数,转换成数值后保存在数组中。
Next i
For i = 1 To n-1 ‘进行n-1趟比较
Max = I ‘对第i 遍比较时,初始假定第i 个元素最小。 For j = i + 1 To n ‘在数组i ~n 个元素中选最小元素
图5-4 使用二维数组打印出的图形
If s(j) < s(Max) Then Max = j
Next j
t = s(i)
s(i) = s(Max)
s(Max) = t ‘i~n个元素中选出的最小元素与第i个元素交换
Next i
For i = 1 To 5
Print s(i)
Next i
End Sub
【例5-6】
Dim b() As Integer
Private Sub Form_Click()
ReDim b(2)
For i = 0 To 2
b(i) = i
Next i
ReDim Preserve b(3)
b(3) = 7
For i = 0 To 3
Print b(i);
Next i
End Sub
【例5-7】
Dim a(8, 8) As Integer '定义一个二维数组
Private Sub Form_Click()
‘下面的二层循环语句给数组赋值
For i = 1 To 8
For j = 1 To i
If i = 1 Or j = 1 Then
a(i, j) = 1 '数组中每一行第一个,最后一个数均为1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
'数组中其余数据等于它上一行的相邻两列之和
End If
Next j
Next i
'下面的二层循环语句将数组中的值打印出来
For i = 1 To 8
Print Tab(20 - 2 * i); '定位打印位置
For j = 1 To i
If a(i, j) < 10 Then '将数组中的值转换成长度为3的字符串,可使打印数据整齐
s = " " + Str(a(i, j)) + " "
ElseIf a(i, j) < 100 Then
s = " " + Str(a(i, j))
End If
Print s;
Next j
Print '换行
Next i
End Sub
【例5-8】
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
Label1.ForeColor = RGB(255, 0, 0)
Case 1
Label1.ForeColor = RGB(0, 255, 0)
Case 2
Label1.ForeColor = RGB(255, 255, 0)
End Select
End Sub
实训
Option Base 1 ‘定义数组下标从1开始
Dim arr() ‘定义动态数组arr
Private Sub Form_Click()
n = Val(InputBox("请输入矩阵的行数")) ‘输入矩阵行数
m = Val(InputBox("请输入矩阵的列数")) ‘输入矩阵列数
ReDim arr(n, m) ‘重定义数组arr为n行m列的二维数组
‘下列程序段为数组输入数据
For i = 1 To n
For j = 1 To m
arr(i, j) = Val(InputBox("请输入矩阵第" & i & "行第" & j & "列的数据"))
Next j
Next i
‘下列程序段在数组中找出最大值及所在位置
row = 1: col = 1
For i = 1 To n
For j = 1 To m
If arr(i, j) > arr(row, col) Then
row = i: col = j
End If
Next j
Next i
‘下列程序段输出矩阵及最大值及所在位置
Print "您输入的矩阵是:"
For i = 1 To n
Print Tab(8);‘打印位置定位
For j = 1 To m
Print arr(i, j);
Next j
Print ‘换行
Next i
Print "矩阵中最大值为:";arr(row, col); "其位置在第" & row & "行" & col & "列"
End Sub
第6章
课前体验
(2)编写窗体装载事件过程:
Private Sub Form_Load()
For I = 0 To 100
List1.AddItem i
Next i
End Sub
(3)使用“添加过程”对话框创建出判断成绩等级的过程
Public Sub DengJi(a As Integer)
Select Case a
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 = "优秀"
End Select
End Sub
4)编写列表框单击Click事件过程:
Private Sub List1_Click()
Dim n As Integer
N = Val(List1.Text)
Call DengJi(n) '调用判断成绩等级的过程
End Sub
(5)编写命令按钮单击Click事件过程:
Private Sub Command1_Click()
End
End Sub
【例6-1】
Private Sub oushu(x As Integer,msg As Boolean)
If x Mod 2 = 0 Then
Msg = True
Else
Msg = False
End If
End Sub
【例6-2】
Public Function Rect(a As Double,b As Double)As Double
Rect = a * b
End Function
【例6-3】
(2)在窗体代码窗口中编写pingjun过程:
Sub pingjun(a As Integer,b As Integer,c As Integer)
C = (a+b)/2
End Sub
(3)编写命令按钮1的单击事件过程:
Private Sub Command1_Click()
Dim x As Integer,y As Integer,z As Integer
X = Val(Text1.Text)
Y = Val(Text2.Text)
Call pingjun(x,y,z) '或pingjun x, y, z
Text3.Text = Str(z)
End Sub
【例6-4】
(2)把判断奇偶性的函数过程jo的程序代码输入到窗体代码窗口中。
Function jo(x As Integer)As String
If x Mod 2 = 0 Then
Jo = "偶数"
Else
Jo = "奇数"
End If
End Function
(3)编写命令按钮1的单击事件过程:
Private Sub Command1_Click()
Dim n As Integer,w As String
n=Val(Text1.Text)
w = jo(n)
Label1.Caption=Text1.Text &"是"& w &"!"
End Sub
【例6-5】
(2)编写参数按地址传递次的过程Swap1:
Sub Swap1(x As String,y As String)
Dim t As String
T = x:x = y:y = t
End Sub
(3)编写命令按钮单击事件过程如下:
Private Sub Command1_Click()
Dim a As String,b As String
A = Text1.Text
B = Text2.Text
Form1.Caption = "按地址传递"
Swap1 a,b
Text1.Text = a
Text2.Text = b
End Sub
【例6-7】
(2)求任意一维数组中各元素之积的函数如下:
Function tt(a() As Integer)As Long '函数的形参是数组
Dim t#, i%
T = 1
For I = LBound(a) To UBound(a) '求数组的下界和上界
T = t * a(i)
Next i
Tt = t
End Function
(3)求任意一维数组中各元素之和的函数如下:
Function ss(b() As Integer)As Long '函数的形参是数组
Dim t#, i%
S = 0
For I = LBound(b) To UBound(b) '求数组的下界和上界
S = s+b(i)
Next i
Ss = s
End Function
(4)编写命令按钮单击事件过程,如下:
Private Sub Command1_Click()
Dim a(1 To 5)As Integer
Dim b(2 To 10)As Integer
Dim i As Integer,t1 As Long,s1 As Long
For I = 1 To 5 '给数组赋值
a(i) = i + 3
Next i
t1 = tt(a()) '调用函数
Print"第一个数组各元素之积t1="; t1
For I = 2 To 10
b(i) = i * 2
Next i
s1 = ss(b())
Print"第二个数组各元素之和s1="; s1
End Sub
【例6-8】
(1)先定义一个具有可选参数的函数过程sum,用来进行3个数的加法运算。
Private Function sum(x As Integer,Optional y As Integer,_
Optional z As Integer=3)As Integer
Sum = x + y + z
End Function
(2)编写窗体的单击事件过程,如下:
Private Sub Form_Click()
Print"sum(1) = 1 + 0 + 3 = ";sum(1) '省略两个参数
Print"sum(1,2) = 1 + 2 + 3 = ";sum(1,2) '省略第3个参数
Print"sum(1,,8) = 1 + 0 + 8 = ";sum(1,,8) '省略第2个参数
Print"sum(1,4,8) = 1 + 4 + 8 =";sum(1,4,8) '不省略参数
End Sub
【例6-9】
(1)先定义一个具有可变参数的函数过程MySum,如下:
Function MySum(ParamArray V A()) As Integer '声明为可变参数
Dim i As Integer
Dim Sum As Integer
Sum = 0
For i=LBound(V A) To UBound(V A) '得到数组的大小,并进行循环
Sum = Sum+V A(i)
Next
MySum = Sum
End Function
(2)编写窗体的单击事件过程,如下:
Private Sub Form_Click()
Dim s As Integer
Print Tab(2); "使用3个实参:";
S = MySum(2,4,6) ' 可以使用任意多个实参来调用
Print "MySum(2,4,6)="; s
Print Tab(2); "使用5个实参:";
S = MySum(1,2,3,4,5)
Print "MySum(1,2,3,4,5)=";s
End Sub
【例6-10】
(1)定义具有窗体参数的过程,如下:
Private Sub BiaoTi(fm As Form) 'fm为窗体对象参数
Text1.Text = "窗体的标题是"& fm.Caption
End Sub
调用过程BiaoTi会改变窗体对象fm中的文本框Text1的文本。
(2)定义具有控件对象参数的过程,如下:
Private Sub KuanDu(tb As TextBox) 'tb为文本框型的控件对象参数tb.Text = "文本框的宽度是"& tb.Width
End Sub
调用过程KuanDu会改变文本框对象tb的文本。
(3)编写按钮的单击事件过程,用来调用具有对象参数的过程。
Private Sub Command1_Click()
Call BiaoTi(Form1)
End Sub
Private Sub Command2_Click()
Call KuanDu(Text1)
End Sub
【例6-11】
Function fac(n As Integer) As Long
If n = 1 Then
Fac = 1
Else
Fac = n * fac(n - 1)
End If
End Function
【例6-12】
Private Sub Command1_Click()
Dim a As Integer,b As Integer '过程级变量
A = 100:b = 8
Print"调用s1前,事件过程中的变量:";"a=";a;"b=";b
Call s1 '调用通用过程sub1
Print" 调用s1后,事件过程中的变量:";"a=";a;"b=";b
End Sub
Sub s1() '通用过程
Dim a As Integer,b As Integer '过程级变量
A = 55:b = 66
Print"通用过程s1中的变量:";"a=";a;"b=";b
End Sub
【例6-13】
Dim a As Integer,b As Integer '声明模块级变量
Private Sub Command1_Click()
A = 100:b = 8 '对模块级变量赋值
Print"调用s1前,模块级变量:";"a=";a;"b=";b
Call s1 '调用通用过程sub1
Print"调用s1后,模块级变量:";"a=";a;"b=";b
End Sub
Sub s1() '通用过程
A = 55:b = 66 '对模块级变量赋值
Print"通用过程s1对模块级变量赋值:";"a=";a;"b=";b
End Sub
【例6-14】
(4)在窗体Form1的代码窗口的顶部,声明模块级变量a和b,分别用来储存程序运行后单击左右两个命令按钮的次数。代码如下:
Private a As Integer
Private b As Integer
(5)编写左边的命令按钮的Command1_Clic事件过程。代码如下:
Private Sub Command1_Click()
Dim s As String
I = I + 1
A = a + 1
S = "单击按钮"& i &"次,左按钮"& a &"次"
MsgBox s,vbOKOnly,"提示"
End Sub
(6)编写右边的命令按钮的Command2_Clic事件过程。代码如下:
Private Sub Command2_Click()
Dim s As String
I = I + 1
B = b + 1
S = "单击按钮"& i &"次,右按钮"& b &"次"
MsgBox s,vbOKOnly,"提示"
End Sub
【例6-15】
Sub change()
Dim d As Integer '声明动态变量d
Static s As Integer '声明静态变量s
D = d + 1
S = s + 1
Print "动态变量d = ";d,"静态变量s = ";s
End Sub
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 3
change '或Call change
Next i
End Sub
实训
(3)在Form1的窗体模块的代码窗口的最顶部(通用声明段)声明模块级变量title,用来存储字符串。代码如下:
Private title As String '表明是使用通用过程还是函数
(4)定义Sub通用过程MySub,来进行乘法运算。其中的形参x、y按值传递,形参z 按地址传递。代码如下:
Private Sub MySub(ByVal x As Integer,ByVal y As Integer,z As Integer)
Z = x * y
End Sub
定义函数过程MyFun,来进行加法运算。其中的形参m和n是按值传递的。代码如下:Private Function MyFun(ByVal m As Integer,ByVal n As Integer) As Integer
MyFun=m+n
End Function
(5)添加窗体的事件过程Form_Load,来做些初始化的工作,将文本框置空。代码如下:Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
分别添加两个单选按钮的Click事件过程,来设置框架Frame1和标签Label的Caption 属性。代码如下:
Private Sub Option1_Click()
Frame1.Caption = "乘法积运算"
Label1.Caption = "×"
End Sub
Private Sub Option2_Click()
Frame1.Caption = "加法运算"
Label1.Caption = "+"
End Sub
添加命令按钮的事件过程Command1_Click。其中,关键字static声明的静态变量i和j 用来储存运算的次数,关键字Dim声明的过程级局部变量a、b、c用来储存三个文本框里的
数值。代码如下:
Private Sub Command1_Click()
Static i As Integer,j As Integer
Dim a As Integer,b As Integer,c As Integer
A = Val(Text1.Text)
B = Val(Text2.Text)
If Option1.Value=True Then
Title = "用过程运算"
Call MySub(a,b,c)
i=i+1
Form1.Caption = "第"& i &"次"& title
Else
Title = "用函数运算"
c=MyFun(a, b)
j = j+1
Form1.Caption = "第"& j &"次"& title
End If
Text3.Text = c
End Sub
第7章
课前体验
Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single) Form1.Caption = "测试鼠标事件"
Select Case Button
Case 1 '左键,或用常量Visual BasicLeftButton FrameLeft.BackColor = Visual BasicRed
FrameRight.BackColor = Visual BasicWhite
Frame1.ToolTipText = "朋友,您刚才在这按了鼠标左键!"
Case 2 '右键,或用常量Visual BasicRightButton
FrameRight.BackColor = Visual BasicRed
FrameLeft.BackColor = Visual BasicWhite
Frame1.ToolTipText = "朋友,您刚才在这按了鼠标右键!"
End Select
End Sub
【例7-1】
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,_
X As Single,Y As Single)
Print"您触发了MouseDown事件!"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer,_
X As Single,Y As Single)
Print"您又触发了MouseUp事件!"
End Sub
【例7-2】
Private Sub Form_MouseMove(Button As Integer,Shift As Integer,_
X As Single,Y As Single)
If Shift=1 And Button=1Then
Cls
Print"鼠标指针当前横坐标X=";X
Else
Cls
Print"鼠标指针当前纵坐标Y=";Y
End If
End Sub
【例7-3】
1)首先,在窗体模块的顶部声明一个逻辑变量paint,如下:
Private paint As Boolean
(2)定义窗体上的按下鼠标按键的事件过程,使得变量paint的值在按鼠标左键时为true。再定义释放鼠标按键的事件过程,使得变量paint的值为false。代码如下:Private Sub Form_MouseDown(Button As Integer,Shift As Integer,_
X As Single,Y As Single)
If Button=1 Then
paint=True
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
paint = False
End Sub
(3)定义窗体上的鼠标移动事件过程。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If paint Then ?paint为true时,程序画出轨迹点
PSet(X,Y)
End If
End Sub
【例7-4】
(2)定义窗体的Form_load事件过程,使列表框中添加几个选项。代码如下:
Private Sub Form_Load()
List1.AddItem"0-Default"
List1.AddItem"1-Arrow"
List1.AddItem"2-Cross"
List1.AddItem"3-I-Beam"
End Sub
(3)定义列表框的单击事件过程。
Private Sub List1_Click()
Form1.MousePointer=List1.ListIndex
End Sub
【例7-5】
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
Print"小写字母:";Chr(KeyAscii);",ASCII码:";KeyAscii
End If
If KeyAscii >= 65 And KeyAscii<=90 Then
Print"大写字母:";Chr(KeyAscii);",ASCII码:";KeyAscii
End If
End Sub
【例7-6】
Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)
Dim color As String
color=Chr(KeyCode)
Select Case color
Case"W"
Label1.BackColor = Visual BasicWhite
Case"R"
Label1.BackColor=Visual BasicRed
Case"G"
Label1.BackColor=Visual BasicGreen
Case "B"
Label1.BackColor=Visual BasicBlue
End Select
End Sub
【例7-7】
Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)
Select Case Shift
Case1
Label1.Caption="你按了【SHIFT】键!"
Case2
Label1.Caption="你按了【CTRL】键!"
Case4
Label1.Caption="你按了【ALT】键!"
Case3
Label1.Caption="你同时按了SHIFT和【CTRL】键!"
Case5
Label1.Caption="你同时按了SHIFT和【ALT】键!"
Case6
Label1.Caption="你同时按了CTRL和【ALT】键!"
Case7
Label1.Caption="你同时按了SHIFT、CTRL和【ALT】键!"