增量查询是这样的:比方你要找 C:\Windows 文件夹下的文件“Win.com”,你打开资源管理器,点 C:\Windows 文件夹,在右边的文件列表中任点一文件名,然后按“W”键,那么蓝色光条就会依次移动到以“W”打头的文件名上,很快就会找到“Win.com”文件。
还有一种增量查询类似于 VB6 的 API 文本浏览器,比如你要查询函数 ShellExecute 的声明,只要在文本框中依次输入该函数名的开头几个字母,蓝色光条就会移到该函数名上。
那么怎样在我们自己的程序中实现这两种增量查询呢? 其实第一种增量查询微软在它的 ListBox 等控件中已经实现了,无需我们劳神伤身。而第二种增量查询则需要编程实现。以下是笔者在 VB6 中的实现方法。
首先建立一个 EXE 工程,在 Form1 窗体上建立文本框 Text1、列表框 List1,将 List1 的 Sorted 属性置成 True,然后键入以下程序代码即可:
Option Explicit
Private Sub Form_Load()
Form1.Caption = "另一种增量查询"
Text1.Text = ""
With List1
.AddItem "AUTOEXEC.BAT"
.AddItem "BOOT.INI"
.AddItem "BOSTAREA.DAT"
.AddItem "BOSBOY"
.AddItem "MYDOC.DOC"
.AddItem "WINDOWSLOG.TXT"
.AddItem "WINZIP.LOG"
.AddItem "WORDDOCUMENT.TXT"
.AddItem "3721"
.AddItem "AAA"
.AddItem "UAA"
.AddItem "Order"
End With
End Sub
-----------------------------------------------------
Private Sub Text1_Change()
Dim theItem As String
Dim i As Integer, ret As Integer
For i = 0 To List1.ListCount - 1
theItem = Left(List1.List(i), Len(Text1.Text))
ret = StrComp(Text1.Text, theItem, vbTextCompare)
If ret = 0 Then
List1.ListIndex = i
Exit Sub
End If
Next i
End Sub
----------------------------------------------------------------------
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Me
End
End Sub
|
|