Dimenticavo LINQ!![]()
Premessa: aggiungi un textBox1 ed un label1 sul form.
Supponiamo di aver caricato i valori in un array di stringhe:
nell'evento KeyUp del textbox puoi fare così:codice:Dim dataSource As String() = {"primo", "secondo", "terzo", "quarto", "quinto", "sesto", "settimo", "ottavo", "nono", "decimo"}
Quindi procedi con la selezione del testo :codice:Dim searchTerm As String = textBox1.Text lunghezza = textBox1.TextLength Dim matchQuery = From word In dataSource Where word.StartsWith(searchTerm) Select word If matchQuery.ToString() <> "" Then label1.Text = matchQuery(0).ToString() End If
Può essere utile sapere che matchQuery è un array che conterrà tutte le occorrenze corrispondenti al testo digitato. Ovvero, se digiti 'q' conterrà:codice:textBox1.Text = matchQuery(0).ToString() textBox1.SelectionStart = lunghezza textBox1.SelectionLength = textBox1.TextLength
matchQuery(0)="quarto"
matchQuery(1)="quinto"
P.S.
Consiglio: mi sembra che tu venga da VB6, almeno il tuo codice fa supporre questo.
Cerca di liberarti 'mentalmente' dallo stile VB6 e di 'studiarti' per benino le enormi potenzialità del .NET ad esempio metodi, proprietà ed eventi del TextBox.
Come vedi con quattro righe di codice fai tutto, meglio e con più semplicità.
Ciò si traduce anche in codice più efficiente, leggibile e soprattutto manutenibile.
![]()

Rispondi quotando