Postup:
V modulu deklarujte zapište následující
funkci:
Public Function
PartialSearch(LVW As ListView, Srch As String) As Long
Dim Founded As Boolean
If LVW.ListItems.Count = 0 Then
'V ListView komponentu nejsou žádné položky, vrátíme 0
PartialSearch = 0
Exit
Function
End If
If Trim(Srch) = "" Then
'Prázdný
řetězec pro vyhledávání, pozice v ListView na první řádek
PartialSearch = 1
Exit
Function
End If
Screen.MousePointer = 11
DoEvents
'Zobrazení hodin
Delka = Len(Trim(Srch))
'Zjištění
délky řetězce
Founded = False 'Zatím
nenalezeno
For I = 1 To LVW.ListItems.Count
If UCase(Mid(LVW.ListItems(I).Text,
1, Delka)) = UCase(Srch) Then
'Hledání
v TEXT položce řádku a nalezeno, vrátím pozici řádku
Founded = True
PartialSearch=I
Exit For
End If
For J = 1
To LVW.ColumnHeaders.Count - 1
If UCase(Mid(LVW.ListItems(I).SubItems(J), 1, Delka)) = UCase(Srch) Then
'Hledání
v SUBITEMS, nalezeno, ukončím hledání
Founded = True
Exit For
End If
Next J
If
Founded Then
'Hledání
úspěšné, vrátím číslo řádku
PartialSearch = I
Exit For
End If
Next I
If Not Founded Then
'Hledání
neúspěšné, skok na první řádek
PartialSearch = 1
End If
Screen.MousePointer = 0
End Function
Použití:
do formuláře k ListView komponentu přidejte TextBox. Na jeho událost
Change zapište:
Private Sub GetSrch_Change()
X =
PartialSearch(Me.Seznam, GetSrch.Text)
If X > 0 Then
Seznam.SelectedItem = Seznam.ListItems(X)
Seznam.SelectedItem.EnsureVisible
End If
End Sub
|