Har kollat på samtliga sök i Pelles site. Det finns säkert...men.. Koden nedan borde returnera den första posten i listan som matchar Mitt VB är cpigt, kan inte starta. HejSöka efter textfiler (List1) i en ListBox
Jag har en lång..lång listning i en Listbox och vill lägga till en TextBox eller annat där jag kan söka efter en fil i Listbox. Ex. en person som heter Åke Persson. Genom skrivning i Textbox ska sökningen loopa sig ner i Listbox till Åke Persson. Lösningen ska gärna redan påbörjas när man skriver in första bokstaven, i exemplet Å...osv,
Tack på för hand!!Sv: Söka efter textfiler (List1) i en ListBox
den sträng som skickas in.
Du kan använda den genom att skriva tex:
<code>
lista1.listindex = posilista(text1.text)
förslagsvis i ett event för text1
private function posILista(str as string) as integer
dim i as integer
dim found as boolean
i = 0
do until found or i > lista1.count
i = i + 1
if left(lista1.list(i), len(str)) = str then found = true
loop
postILista = i
end function
</code>
Brasklapp: Koden är ej testad, men den borde fungera...
/EmmaSv: Söka efter textfiler (List1) i en ListBox
Men går så här:
1. Leta reda på api deklarationen för funktionen sendmessage
2. Leta reda på api deklarationen för konstanten LB_FINDSTRING
i textbox_onchange skriver du:
minlistbox.listindex = sendmessage(minlistbox.hwnd, LB_FINDSTRING, 0&, byval textbox.text)
då ska den automatisk hoppa till första raden som innehåller det du skrivit i textboxen.
OBS!!! kontrollera att sendmessageanropet är rätt. mitt vb6 fungerar som sagt inte. Men jag är 80% säker på att jag skrev rätt =)Sv: Söka efter textfiler (List1) i en ListBox
Var tvungen att testa .Detta fungerar i VB 6
Const LB_FINDSTRING = &H18F
Private Sub Text3_Change()
'Fånga textrad i ListBox
List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, _
ByVal CStr(Text3.Text))
End Sub
Sven