微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题增强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 = 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
   增加列表框项目自动移动功能
  在上例中,去掉文本框,增加一个计时器,设置计时器属性: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