Hej! Hej Hej! Var kanske något sånt här du var ute efter. Finns många olika varianter på internet. Denna är mycket enkel. Hanterar tyvär inte delete eller backspace.Matchar?
Jag har en ComboBox med flera olika alternativ. jag vill att när man själv skriver i ComboBox:en så ska programmet försöka matcha ihop alternativen som finns förbestämda med det man skriver, ni vet som IE gör när man skriver in en adress i rutan så ger den förslag... en sådan funktion vill jag ha :D
som sagt allt den ska välja mellan och försöka matcja ihop finns redan i ComboBox:en
Nån som kan hjälpa mig?Sv: Matchar?
Ett litet exempel på hur du kan komma igång.
Det här exmplet täcker inte riktigt det du vill komma åt.
Det bästa är att du har en vanlig TextBox ovanför en ListBox
Var tvungen att kolla hur IE har gjort.Dom har kombinerat
en Combo med en ListBox,Dvs Combon ligger där den ligger
och rakt under presenterar dom en ListBox som visar sökresultat
bokstav för bokstav LIKE.
Option Explicit
Private Sub Combo1_Change()
Dim i As Long
For i = 0 To Combo1.ListCount - 1
If Combo1.Text Like Combo1.List(i) Then
Combo1.ListIndex = i
Exit For
End If
Next 'i
SendKeys "%{DOWN}", True
End Sub
Private Sub Form_Load()
'Fyller Combon med testmaterial
Dim i As Long
For i = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(i)
Next 'i
End Sub
mvh
SvenSv: Matchar?
Hmm.. det funkar men man måste trycka på tanjenten två ggr för att den ska skrivas i fältet :/ Vet du hur det går att lösas?
Jag är inte direkt bra på VB själv tyvärr... men jag lär mig ;)Sv: Matchar?
<code>
Option Explicit
Private Sub Combo1_Change()
AutoComplet Combo1
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(i)
Next 'i
End Sub
Public Sub AutoComplet(Combo As ComboBox)
Dim i As Long
Dim sFind As String
Dim sItem As String
Dim lLength As Long
lLength = Combo.SelStart
sFind = Left$(Combo.Text, lLength)
If Len(sFind) Then
For i = 0 To Combo.ListCount - 1
sItem = Combo.List(i)
If StrComp(Left(sItem, lLength), sFind, vbTextCompare) = 0 Then
Combo.ListIndex = i
Combo.SelStart = lLength
Combo.SelLength = Len(sItem) - lLength
Exit For
End If
Next 'i
End If
End Sub
</code>
Men det fixar nog SvenPon. Han är duktig på vb.