Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Combobox con auto completamento
mercoledì 19 marzo 2008 - 11.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
liuc
Profilo
| Junior Member
146
messaggi | Data Invio:
mer 19 mar 2008 - 11:00
Ho un combobox con funzione di autocompletamento.
Nella modalità di funzionamento base va tutto bene (intendo dire caricando da webservice l'elenco degli item ed impostando le varie proprietà autocomplete del combobox nell'evento Load del form).
Il problema è che i dati che ritorna il web service sono tanti (l'elnco dei comuni italiani) e questo rallenta l'apertura del form.
In alternativa ho pensato di caricare i dati adl webservice solo dopo che l'utente ha inserito almento un paio di caratteri nella combo; così facendo, però, quando carica i dati viene riselezionato il testo già inserito quindi se uno continua a scrivere i caratteri mancanti questi si sostituiscono a quelli già inseriti ed ovviamente non va bene.
Di seguito riporto il codice associato all'evento keyup della combo che uso per gestire il tutto :
Private Sub ComboBox1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyUp
If ComboBox1.Text.Length = 1 Then
ComboBox1.Items.Clear()
ComboBox1.Items.AddRange(GetElencoComuni(e.KeyCode.ToString).ToArray(GetType(System.String)))
ComboBox1.AutoCompleteCustomSource.AddRange(GetElencoComuni(e.KeyCode).ToArray(GetType(System.String)))
ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
End If
End Sub
Qualche idea ? Un altro modo per gestire la faccenda ?
Grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mer 26 mar 2008 - 14:29
ciao,
effettivamente il comportamento come lo descrivi tu c'e'.
L'unica cosa da fare secondo me, è dopo aver settato la AutocompleteSource, pulire la selezione della combo, quindi:
....
ComboBox1.AutoCompleteCustomSource ....
ComboBox1.SelectionStart = comboBox.Text.Length
...
in modo da fare digitare apparire correttamente quello che sta scrivendo l'utente...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !