Oppure

Loading
02/01/16 22:03
Salve,

ho creato in un form una listbox e una textbox. quando digito nella textbox un nome mi deve selezionare l'item che io sto cercando e fino a qui non c'è nessun problema. infatti, ho usato questo codice

            if (textbox.Text != string.Empty)
            {
                int index = listBox3.FindString(textbox.Text);
                if (index != -1)
                    listBox3.SetSelected(index, true);

            }


il problema nasce quando nella listbox ci sono due items che sono uguali o sono simili cioè mi spiego con un esempio...se in una listbox ci sono questi items:

TEST
TEST1
TEST
TEST2

se io digito test mi seleziona solo il primo item, ma se io volessi che mi selezionasse il terzo item? non vorrei usare quella proprietà della listbox dove c'è scritto "multiselection"

mi potete dare una mano?
03/01/16 10:41
Template
Non entro nelle specifiche del linguaggio che stai usando (ne so poco), ma andando per logica ritengo che tu voglia l'impossibile: qualsiasi ipotetico algoritmo di ricerca può ritornarti o il primo risultato corrispondente alla chiave di ricerca o il "best match", ed in entrambi i casi non corrisponde a quello che hai in mente.
Tra l'altro, mi chiedo: in base a che cosa il tuo programma dovrebbe distinguere il primo item dal terzo? Cosa fa in modo che un algoritmo di ricerca possa ritenere nei casi opportuni il terzo elemento diverso dal primo (e dunque ad esso preferibile)?
aaa
03/01/16 12:19
Roby94
Postato originariamente da file001:

se io digito test mi seleziona solo il primo item, ma se io volessi che mi selezionasse il terzo item?

Con quale logica? Devi sempre selezionare l'ultima ricorrenza uguale? Quella uguale e in caso di casi multipli quella con index piu grande? Se non spieghi la logica di funzionamento ma solo un esempio allora alla tua domanda sarebbe valido rispondere con un
listBox3.SetSelected(2, true);
aaa