Per vuott.
Riprendendo il tuo esempio, ho notato che dopo aver trovato la prima ricorrenza, se ti scappa di digitare un carattere senza porsi all'inizio della stringa nella combo,
si presenta un errore. Mi sono quindi permesso di inserire nel tuo esempio una semplice modifica che si occupa di cancellare la stringa del precedente item trovato,
ricorrendo all'evento keypress(). Così facendo, qualsiasi carattere si digiti senza preoccuparsi di cancellare la precedente ricorrenza,
si posiziona subito sulla prima occorrenza che inizia col carattere digitato. Così mi sembra quasi perfetto per l'uso che ne voglio fare, ma devo inserire un controllo
che non ritorni un errore nel caso in cui la ricorrenza non viene trovata.
' Gambas class file
Public carattere As String
Public Sub Form_Open()
Cmb_prova.Tag = 1
End
Public Sub Cmb_prova_Change()
With Cmb_prova
.Text = Cmb_prova[.List.Find(String.Left(carattere, .Pos) & "*", gb.Like)].Text
.Pos = .Tag
End With
End
Public Sub Cmb_prova_KeyRelease()
With Cmb_prova
If Key.Code < 127 Then
Inc .Tag
Else
.Tag = .Pos + 1
Endif
End With
End
Public Sub Cmb_prova_KeyPress()
carattere = Key.Text
End