[ bokac @ 28.01.2004. 13:19 ] @
Napravio sam Windows aplikaciju u C# koja sadrzi ListBox kontrolu sa povecim spiskom stavki. Kada na tastaturi izaberem pocetno slovo selektuje mi se prva stavka na listi sa datim pocetnim slovom u nazivu. Posto ima vise stavki sa istim pocetnim slovom hteo bih da svako sledece slovo koje otkucam tretira kao sledece slovo u nazivu stavke, a ne kao pocetno neke druge stavke. Da li neko ima ideju kako da isprogramiram ListBox kontrolu da se tako ponasa. Nadam se da sam dobro formulisao pitanje. Hvala unapred!
[ mmix @ 28.01.2004. 14:13 ] @
Zanimljiva stvar, inkrementalno pretraživanje ListBoxa. Verovatno neko to već ima urađeno, ali ja ne znam gde to možeš naći ali ti mogu reći kako da ga napraviš:

1. Implementiraj ListBox.OnKeyDown i tu za svaki pritisak na alfanumerik dodaj po jedan karakter na neki string koji pamtiš, kad dodaš karakter pretraži Items i nađi prvi koji se podudara, ovo pretraživanje može da ti udara na performanse ako je lista velika, pa smisli neko indeksiranje

2. Implementiraj neki timer objekat i stavi ga na recimo 1 ili 2 sekunde, startuj ga kad se ukuca prvi karakter, i restartuj ga uvek ispočetka (Stop pa Start) na svaki sledeći ukucani taster. Ako timer istekne sam za sebe postavi string koji pamtiš na "" ali ne pomeraj index u listi (ovo da bi se pretraživanje restartovalo usled "neaktivnosti" da možeš da pretražuješ ispočetka)

To je to, možeš sve ovo da radiš na formu, a možeš i da embeduješ u novu kontrolu ako ti to treba na više mesta...

[ bokac @ 28.01.2004. 15:21 ] @
Hvala mmix, dobar predlog pokusacu da ga izvedem, testiracu zatim performanse pa cemo videti.