标题增强VB列表框功能两例
栏目软件世界
作者李志龙
发布2001年50期
我们在建立文本管理数据库时,会用到列表框控件。然而,列表框功能较为单一,它只是静态列表显示项目。在项目内容很多时,要想找到目标项目,需多次按动滚动条按钮,很不方便。其实,我们只要增加一些辅助手段,添加若干行代码,就能够改变以上状况,实现按关键字多项查找,或是列表项目自行移动,不需用户干预,使查找轻松方便,大大增强列表框功能。
给列表框增加项目查找功能
新建工程,在窗体上增加一个列表框、一个文本框,并设置列表框属性:multiselect=1,添加部分代码:
Private Sub Form_Load()
Dim filenum%, catalog$(99), i%
ChDir App.Path
ChDrive App.Path
FileName$=“content.txt” '文本文件中含有多条列表框项目
filenum = FreeFile
Open FileName$ For Input As #filenum
Do While Not EOF(filenum)
Line Input #filenum,catalog(i)
If catalog(i)<> “” Then
List1.AddItem catalog(i) '追加列表框项目
End If
i = i + 1
Loop
Close #filenum
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim keyword$,listitem$
Dim locality%
If KeyAscii = 13 Then '回车查找
keyword = RTrimLTrim(Text1.Text)
For i = 0 To List1.ListCount - 1
listitem = List1.List(i)
locality = InStr(listitem, keyword)
If locality <> 0 Then
List1.Selected(i) = True
End If
Next
End If
End Sub
增加列表框项目自动移动功能
在上例中,去掉文本框,增加一个计时器,设置计时器属性:enabled=false,interval=400;设置列表框属性:multiselect=0。添加有关代码:
Dim n%
Private Sub Form_Load
…
n = 1
End Sub
Private Sub List1_Click()'单击列表框项目,焦点自动移动
Timer1.Enabled = True
End Sub
Private Sub List1_DblClick()'双击后焦点停止移动并执行命令
Timer1.Enabled = False
Print “sample”
End Sub
Private Sub Timer1_Timer()
List1.ListIndex = List1.ListIndex + n '焦点上、下移动
If List1.ListIndex = List1.ListCount - 1 Then n = -1
If List1.ListIndex = 0 Then n = 1
End Sub