分享
 
 
 

VB6常用方法汇编

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用静态变量

放置控件: 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

End Sub

使用MsgBox双向选择

放置控件: Form1:Command1

属性设置:〖Command1.Caption〗=Exit

代码:

Private Sub Command1_Click()

myexit = MsgBox("确实想退出吗?", VbOkCancel, "退出")

If myexit = VbOk Then

Unload Me

Else

Debug.Print “放弃退出”

End If

End Sub

用InputBox输入数值

放置控件: Form1:Command1

属性设置:〖Command1.Caption〗=开始

代码:

Private Sub Command1_Click()

Dim string1 As String

Dim int1 As Integer

string1 = InputBox("Input")

int1 = Val(string1)

'可直接用int1 = Val(InputBox("input"))

Print "int1="; int1

End Sub

复杂InputBox输入

Private Sub Command1_Click()

qs = 1.2

qs1 = 1.2

ts1 = "2001-2002年乡及乡以上工业增长" & qs & "%,修改后按‘确定’"

s1 = Val(InputBox(ts1, "计算修改", qs1))

If s1 <> "" And s1 <> "0" Then

MsgBox "2002年乡及乡以上工业用水=" & s1 * 123 & "亿立方米。"

Else

MsgBox "放弃修改。"

End If

End Sub

用Timer作定时器

放置控件: Form1:Text1,Timer1

属性设置: 〖Timer1.Interval〗=1000 '1000ms

代码:

Private Sub Timer1_Timer()

If Text1.Text <> "10:02:00" Then

Text1.Text = Time

Else '时间到

Text1.Text = "OK"

Timer1.Enabled = False '不再显示时间

End If

End Sub

用Timer编制延时程序

放置控件: Form1:Command1,Timer1

属性设置: 〖Timer1.Interval〗=10 '10ms

代码:

Sub delay(ss As Integer) '延时过程

Dim start, check

start = Timer

Do

check = Timer

Loop While check < start + ss * 0.001

End Sub

Private Sub Command1_Click()

Command1.Caption = "test1"

delay (1000)

Command1.Caption = "test2"

delay (2000)

Unload Me '退出

End Sub

使用File控件

Private Sub Form_Load()

File1.Pattern = “*.txt”

File1.Path = “C:\fxfx\kfb”

End Sub

如果使用目录列表控件Dir1,则可以用

File1.Path = Dir1

接可以联动使用。

使用COMMONDIALOG控件

在部件的控件中打开Microsoft Common Dialog Control 6.0 (SP),再添加CommonDialog1、Command1和Text1控件。运行时打开文件对话框,并将选中的文件显示在文本框中。

Private Sub Command1_Click()

On Error GoTo errhandler

CommonDialog1.Filter = "All Files(*.*)|*.*|Text Files(*.txt)|*.txt"

CommonDialog1.FilterIndex = 1 ‘缺省为All Files

CommonDialog1.ShowOpen

Text1 = CommonDialog1.FileName

Exit Sub

errhandler:

Exit Sub

End Sub

CommonDialog控件还可以显示颜色对话框(CommonDialog1.showcolor),字体对话框(CommonDialog1.showfont),打印对话框(CommonDialog1.printer),显示帮助对话框(用CommonDialog1.HelpFile=”C:\Windows\Cadio.hlp”设置,用CommonDialog1.ShowHelp调用)。

取消窗体的按钮组

Form1.ControlBox = False

使用Microsoft Flex Grid 6.0控件绑定数据库

直接添加后设置即可;

运行时动态改变控件数组

先在FORM中添加一个COMBO控件,再复制一个成为控件数组,把COMBO1(1)删除,再把COMBO1(0)移到左上角,添加一个COMMAND在右边,编码如下:

Private Sub Command1_Click()

Unload Combo1(5) ‘去掉一个控件

End Sub

Private Sub Form_Load()

c1y = 600

For i = 1 To 5 ‘增加一组控件

Load Combo1(i)

Combo1(i).Top = c1y

Combo1(i).Left = 100

c1y = c1y + 500

Combo1(i).Visible = True

Next

End Sub

StatusBar使用

在部件的控件中打开Microsoft Common Dialog Control 6.0 (SP),再添加Statusbar控件。右击添加窗格,并调整宽度。

添加文字时程序为:

StatusBar1.Panels(1).text = "比例 1 : " & Format$(sbScaleBar1.RFScale, "###,###,###,###,###")

VbModal调用方式

采用VbModal方式调用FORM,可以在其运行完成后在执行下一语句,如:

frmTip.Show vbModal

MsgBox TipType

如果在frmTip中设定TipType=100,则可以显示出这个值来。

ProgressBar的使用

在部件的控件中打开Microsoft Windows Common Control 6.0,再添加ProgressBar控件。

编程时,要先设ProgressBar1.Max(一般为最大循环数加1)和ProgressBar1.Min(一般为0),再在循环中加上一个和循环数同步的变量,如si,再用

ProgressBar1.Value = si

就可以实现进程条的结果了。

在FOR循环中的例子为:

Private Sub Command1_Click()

Dim i As Long

Dim j As Long

Dim si As Long

si = 0

ProgressBar1.Max = 10001

ProgressBar1.Min = 0

For i = 0 To 10000

For j = 0 To 1000

a = "sdf"

Next j

si = si + 1

ProgressBar1.Value = si

Next i

MsgBox "end"

End Sub

在数据库操作中的例子为:

ProgressBar1.Max = ri + 1 ‘ri为全部记录数;

ProgressBar1.Min = 0

Rst2.MoveFirst

While Not Rst2.EOF

……

rj = rj + 1

ProgressBar1.Value = rj

Wend

三 控件编程基本方法

控件输入位置和聚焦

放置控件: Form1:Text1,Command1

代码:

Private Sub Command1_Click()

Text1.SelStart = 3 '光标在第3个位置

Text1.SetFocus '使焦点回到Text1

End Sub

使用容器控件

容器控件有:Frame,PictureBox和ToolBar。

使用容器控件包容其它控件的方法有:

1.先产生容器控件,在其上画其它控件;

2.把已有控件剪贴到容器控件上;

3.用程序 Command1.Container = Frame1

用一键来回设置

放置控件: Form1:Command1,List1

代码:

Private Sub Command1_Click()

If Bzl then

List1.Visible = True

Command1.Cption = “Exit”

Bzl = false

Else

List1.Visible = False

Command1.Caption = “Display”

Bzl = True

End If

End Sub

Private Sub Form_Load()

Bzl = Ture

List1.Visiblae = False

Command1.Caption = “Display”

End Sub

列表控件的选择属性

以List1 的属性为例,列表类控件如List,Combo,File,Dir等均可使用:

1.选中第I项 List1.Selected(i) (True)

2.返回第I项内容 List1.List(i)

3.返回列表总项数 List1.ListCount

4.返回最近一次点击位置 List1.ListIndex

注意:I均从零开始。

列表控件的全选

For i = 0 To File1.ListCount - 1

File1.Selected(i) = True

Next

列表控件的部份选择

Dim fscount, i, j

Dim fs1(100) As String

j = 0

For i = 0 To File1.ListCount - 1

If File1.Selected(i) Then

fs1(j) = File1.List(i)

j = j + 1

End If

Next

fscount = j

使用TreeView控件产生目录

在【部件】中选择“Microsoft Windows Common Control 6.0(SP3)”,就可以打开一组控件,有Tabstrip、Toolbar、Statusbar、Progressbar、Treeview、Listview、Imagelist、Slider、Imagecombo。

把Treeview1和Imagelist1加入窗体;

右击Imagelist1,打开属性页,添加图形;

右击Treeview1,打开属性页,在【图像列表】中选择Imagelist1,还可以改变自目录的缩进;

改变Treeview1属性Linestyle为1;

添加代码:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)

Select Case Node.Key

Case "fx1"

Hyperlink.NavigateTo ("http://b4x5d1/faexcise/fa1/default1.asp")

Case "fx2"

Hyperlink.NavigateTo ("http://b4x5d1/faexcise/fa1/create1.asp")

End Select

End Sub

Private Sub UserDocument_Initialize()

Dim mynode As Node

Set mynode = TreeView1.Nodes.Add(, , "fx", "发行系统", 2)

Set mynode = TreeView1.Nodes.Add(, , "cb", "出版系统", 2)

Set mynode = TreeView1.Nodes.Add(, , "cw", "财务系统", 2)

Set mynode = TreeView1.Nodes.Add(, , "bw", "编务系统", 2)

Set mynode = TreeView1.Nodes.Add(, , "xt", "系统管理", 2)

'二级目录

Set mynode = TreeView1.Nodes.Add("fx", tvwChild, "fx1", "批销", 3)

Set mynode = TreeView1.Nodes.Add("fx", tvwChild, "fx2", "样书", 3)

Set mynode = TreeView1.Nodes.Add("fx", tvwChild, "fx3", "发行管理", 3)

Set mynode = TreeView1.Nodes.Add("fx", tvwChild, "fx4", "查询", 3)

mynode.EnsureVisible

End Sub

四 错误处理

使用监视窗口调试的例子

放置控件: Form1:Command1

属性设置: 〖Command1.Caption〗=开始计算

第一頁    上一頁    第1頁/共11頁    下一頁    最後頁
第01頁 第02頁 第03頁 第04頁 第05頁 第06頁 第07頁 第08頁 第09頁 第10頁 
第11頁 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有