VB6常用方法知识
VB6常用方法知识
使用静态变量
放置控件: Form1:Label1,Command1
属性设置: cLabel1.Autosize= true
代码:
Private Sub Command1_Click()
Static stflag As Boolean '使用静态变量来保存变量值
If stflag = False Then
Label1.Font.Size = 14
stflag = True
Else
Label1.Font.Size = 9
stflag = False
End If
End Sub
创建对象
放置控件: Form1:Command1,text1
代码:
Private Sub Command1_Click()
Dim t1 As TextBox
Set t1 = Form1.Text1
If t1.Text = 0 Then
t1.BackColor = 0
t1.ForeColor = 255
End If
End Sub
运行时,只要在Text1中写入0,点击Command1,Text1框就变色了。
如不用t1对象,则程序中t1.BackColor要写成form1.text1.BackColor,比较麻烦。
自定义方法和属性
放置控件: Form1:Command1,text1
代码:
Public tsize As Integer '定义属性
Public Sub textlarge() '定义方法
Text1.Width = Text1.Width * 1.1
Text1.Height = Text1.Height * 1.1
Text1.FontSize = Text1.FontSize + tsize
End Sub
Private Sub Command1_Click()
Form1.tsize = 4
Form1.textlarge
End Sub
遍历控件集合
放置控件: Form1:Label1,Command1,text1,list1
代码:
Private Sub Form_Load()
Dim myc1 As Control
For Each myc1 In Controls
List1.AddItem myc1.Name
Next myc1
End Sub
集合寻址
放置控件: Form1:Label1,Command1,text1,list1
代码:
Private Sub Command1_Click()
Text1 = Controls(3).Left
'Text1 = Controls("label1").Left
'Text1 = Controls!label1.Left
End Sub
代码换行和并行
变量:
a1 = 2: a2 = 3: a3 = 4 '并行
b1 = a1 + a2 + _ '换行
a3
对于字符串:
s1 = “sadd” & c1 & “qwer” '联接
s1 = “sadd” & c1 & “qwer” & _ '换行
“fjkgjgj06”
打印和显示换行
s1 = ”fjdkkjd” & vbcrlf & “iioknno”
强迫变量声明
Option Explicit
还可以在菜单【工具】‖【选项】(编辑器)中选[要求变量声明],自动在每个模块上加Option Explicit
查找字符串显示长度
Public Function len1(str As String) As Integer ‘公用函数
Dim si, i As Integer
Dim str1 As String
si = 0
For i = 1 To Len(str)
str1 = Mid(str, i, 1)
If Asc(str1) < 0 Then
si = si + 2 ‘汉字长度为2
Else
si = si + 1
End If
Next
len1 = si
End Function
截取字符串定长
Public Function len2(s2 As String, si As Integer) As String
Do While len1(s2) > si
s2 = Mid(s2, 1, Len(s2) - 1)
Loop
len2 = s2
End Function
截取并补齐定长字符串
Public Function len3(s2 As String, si As Integer) As String
If len1(s2) > si Then
Do While len1(s2) > si
s2 = Mid(s2, 1, Len(s2) - 1) ‘长了截断
Loop
Else
Do While len1(s2) < si
s2 = s2 & " " ‘短了用空格补齐
Loop
End If
len3 = s2
End Function
模糊查找
Sub shumlook(ByVal shu2 As String)
Dim shu3 As String
shu3 = Mid(shu3, 1, Len(shu2))
If shu3 = shu2 Then
End if
End Sub
清除字符串的所有空格
Function Trimk(cc0)
Dim i, j, s1
j = Len(cc0)
i = 1
While i < j + 1
s1 = Mid(cc0, i, 1)
'MsgBox "s1=" & s1 & ";"
If s1 = " " Or s1 = "" Then
cc0 = Mid(cc0, 1, i - 1) + Mid(cc0, i + 1, j)
i = i - 1
'MsgBox "cc0=" & cc0
End If
i = i + 1
Wend
Trimk = cc0
End Function
读取当前日期和时间
放置控件: Form1:Text1,Text2,Command1
代码:
Private Sub Command1_Click()
Dim d1 As Date
d1 = Date
Text1 = d1 '显示如00-6-24
d1 = Time
Text2 = d1 '显示如10:30:23
End Sub
输入日期并计算
放置控件: Form1:Text1,Text2,Command1
代码:
Private Sub Command1_Click()
Dim d1 As Date
d1 = Text1
d1 = d1 - 100
Text2 = d1
Text1 = Weekday(d1)
End Sub
运行时先在Text1中输入日期(如00-5-30),再点击Command1,则在Text2中显示输入日期100天前的日期,并在Text1中显示该日期为星期几。
返回年、月、日、时、分、秒的函数为year,month,day,hour,minute,second。
注意Weekday返回1代表星期天,2代表星期一,7代表星期六。
初始化事件和终止事件
当调用一个窗体时,一般首先引发initialize事件,再引发load事件。但只是引用窗体上数据或过程时,可能不引发load事件。只有当调用控件时,才引发load。
当终止窗体时,先引发unload事件,再引发terminate事件。但只用unload form1时,并不能引发terminate事件,这时窗体中的过程和变量仍然可以引用。只有用set form1=nothing才能引发ternimate事件。
不定长数组
先定义数组Dim array1 ( )
使用时再用ReDim ( 3, 9 )
或 ReDim (1 to 3, 1 to 9 )
用FORMAT决定数据格式
1.日期和时间
以系统设置的长日期格式返回当前系统日期。
Print Format(Date, "Long Date") ‘返回2001年10月29日
MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"。
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"。
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"。
2.数字
MyStr = Format(5459.4, "##,##0.00") ' 返回 "5,459.40"。
MyStr = Format(334.9, "###0.00") ' 返回 "334.90"。
MyStr = Format(0.5, "0.00%") ' 返回 "50.00%"。
简化:如aa = 1235432 / 3
Print Format(aa, "0.000") ‘返回411810.667
整数:Print Format(123, "00000") ‘返回00123
3.字符
小写:MyStr = Format("HELLO", "<") ' 返回 "hello"。
大写:MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"。
如果没有指定格式,则返回原字符串。
MyStr = Format(23) ' 返回 "23"。
记录变量
先在模块(如Module1)中定义:
Type QipuRec
qx As Integer
qy As Integer
qColor As string
End Type
再在Form1中添加:
Dim QiShu(1 To 400) As QipuRec
就可以引用QiShu.qx,QiShu.qy了。
二 常用控件
调用不同的Form
放置控件: Form1:Command1,Command2; Form2:Command1
属性设置: 〖Form1.Command1.Caption〗= 进入Form2
〖Form1.Command2.Caption〗= 退出
〖Form2.Command1.Caption〗= 返回Form1
Form1代码:
Private Sub Command1_Click()
Form2.Show
End Sub
Private Sub Command2_Click()
End
End Sub
Form2代码
Private Sub Command1_Click()
Form2.Hide
Form1.Show
End Sub
用OptionButton单选
放置控件: Form1:Option1,Option2,Option3,Label1
属性设置: 〖Option1.Caption〗=BASIC
〖Option2.Caption〗=PASCAL
〖Option3.Caption〗=C
代码:
Private Sub Option1_Click()
Label1.Caption="BASIC"
End Sub
Private Sub Option2_Click()
Label1.Caption="PASCAL"
End Sub
Private Sub Option3_Click()
Label1.Caption="C"
End Sub
用Check复选
放置控件: Form1:Text1,Check1,Check2
属性设置: 〖Text1.text〗=字体演示
代码:
Private Sub Check1_Click()
If Check1.Value=1 then '选中
Text1.FontSize=14 '字体为14号,大字
Else '取消
Text1.FontSize=9 '字体为9号,普通字
End If
End Sub
Private Sub Check2_Click()
If Check2.Value=1 then
Text1.FontItalic=True '设斜体
Else
Text1.FontItalic=False '恢复正常
End If
End Sub
选择ComboBox表值
放置控件: Form1:Combo1(ComboBox)
代码:
Private Sub Combo1_Click()
s1 = Combo1.Text
Print "您选中的是: ";s1
End Sub
Private Sub Form_Load()
Combo1.AddItem "初中"
Combo1.AddItem "高中"
Combo1.AddItem "大学"
End Sub
ListBox从程序赋值
放置控件: Form1:list1(ListBox),label1
代码:
Private Sub Form_Load()
List1.AddItem "a1" '用AddItem方法赋值
List1.AddItem "a2"
List1.AddItem "a3"
End Sub
Private Sub List1_Click()
Select Case List1.ListIndex 'ListIndex值为0,1,2
Case 0: Label1.Caption = "ok1"
Case 1: Label1.Caption = "ok2"
Case 2: Label1.Caption = "ok3"
End Select