增强VB列表框功能两例

我们在建立文本管理数据库时,会用到列表框控件。然而,列表框功能较为单一,它只是静态列表显示项目。在项目内容很多时,要想找到目标项目,需多次按动滚动条按钮,很不方便。其实,我们只要增加一些辅助手段,添加若干行代码,就能够改变以上状况,实现按关键字多项查找,或是列表项目自行移动,不需用户干预,使查找轻松方便,大大增强列表框功能。
  #1 给列表框增加项目查找功能
   新建工程,在窗体上增加一个列表框、一个文本框,并设置列表框属性: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 = RTrim LTrim(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
  #1 增加列表框项目自动移动功能
   在上例中,去掉文本框,增加一个计时器,设置计时器属性: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