2011-11-02 11 views
10
// [in designer] textBoxInContext.AutoCompleteMode = Suggest 
// [in designer] textBoxInContext.AutoCompleteSource = CustomSource 
AutoCompleteStringCollection autoComplete = new AutoCompleteStringCollection(); 
autoComplete.AddRange(myArrayofStrings); 
textBoxInContext.AutoCompleteCustomSource = autoComplete; 

Ho questo codice che funziona bene come documentato in MSDN.

Problema: se l'utente digita "PS" mostra tutta la stringa che inizia con "PS"; Vorrei visualizzare tutte le stringhe contenenti "PS"Completamento automatico [contiene invece di iniziare con] in Winform TextBox

Eventuali puntatori?

+1

Questo dovrebbe essere un compito abbastanza semplice da raggiungere, ma avremmo bisogno di vedere più del tuo codice per individuare la linea da cambiare. qualcosa come 'var results = autoComplete.Where (x => x.StartsWith (" PS ");' diventa 'var results = autoComplete.Where (x => x.Contains (" PS ");' – JConstantine

+0

@JLevett: quello è tutto il codice. Sto cercando di utilizzare la funzione di completamento automatico fornita da MS. [http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.autocompletemode%28v=vs.90%29 .aspx] – karephul

+1

Si potrebbe dare un'occhiata a [http://stackoverflow.com/questions/1524166/autocomplete-textbox-with-features-of-like-clause-example-hello-c-sharp-window] dal " sezione correlata "a destra - sembra che questo comportamento sia quasi impossibile – jCoder

risposta

0

Il suggerimento stupido ma divertente: creare una classe che eredita da AutoCompleteStringCollection e giocare con essa in debug per vedere se è possibile simulare questo.

Il normale suggerimento: crea il tuo autocomplete con una listbox.

-2

Mi sono imbattuto nello stesso problema e WPF Autocomplete Textbox Control è quello che ho trovato in CodeProject, funziona piuttosto bene. È scritto in WPF, ma puoi modificarlo per soddisfare le tue esigenze.

+0

Answer non fornisce una soluzione alla domanda, è uguale al problema dell'utente –

+0

Questo è abbastanza vecchio ... Come ricordo di aver passato un po 'di tempo per verificare che il link fornito funzionasse effettivamente su un progetto WinForm. Penso solo che sarebbe meglio lasciare il collegamento invece di incollare un enorme pezzo di merluzzo e qui – kennyzx

+0

Dopo tutto è fondamentalmente la manipolazione delle stringhe ... entrambi impostano la proprietà Text di un WinForm/WPFTextBox, giusto? – kennyzx

1

Se non trovate un altro modo, vi suggerisco di farlo manualmente:

  1. Utilizzare una casella combinata senza elementi (si compila manualmente in seguito).
  2. Avere un array di stringhe con i possibili suggerimenti.
  3. All'evento combobox.TextChanged o KeyUp prendere il suo testo e confrontarlo con il vostro matrice di stringhe in qualunque modo si desidera e, dopo aver eliminato l'combobox.Items, aggiungere i risultati alla combobox.Items e assicurarsi di impostare la proprietà DroppedDown al vero se si dispone suggerimenti trovati.
Problemi correlati