VB实例源码

VB实例源码
VB实例源码

课前体验

Private Sub Form_Click()

For i = 1 To 10

For j = 1 To i

Print "* ";

Next j

Print

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

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

Print

For j = 1 To 9

Print j;

For k = 1 To j

Print Tab(k * 6); j * k; " ";

Next k

Print

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 "您输入的矩阵是:"

Print

For i = 1 To n

Print Tab(8);‘打印位置定位

For j = 1 To m

Print arr(i, j);

Next j

Print ‘换行

Next i

Print

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

Print Tab(2); "使用3个实参:";

S = MySum(2,4,6) ' 可以使用任意多个实参来调用

Print "MySum(2,4,6)="; s

Print

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

Print"调用s1前,事件过程中的变量:";"a=";a;"b=";b

Call s1 '调用通用过程sub1

Print

Print" 调用s1后,事件过程中的变量:";"a=";a;"b=";b

End Sub

Sub s1() '通用过程

Dim a As Integer,b As Integer '过程级变量

A = 55:b = 66

Print

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

Print"调用s1前,模块级变量:";"a=";a;"b=";b

Call s1 '调用通用过程sub1

Print

Print"调用s1后,模块级变量:";"a=";a;"b=";b

End Sub

Sub s1() '通用过程

A = 55:b = 66 '对模块级变量赋值

Print

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】键!"

相关主题
相关文档
最新文档