Wyszukiwarka dynamiczna

0

No wiec to jest moj pierwszy post, dlatego witam wszystkich :)

Mam pewien problem, otóż piszę taki niewielki projekt (jako, że nie miałem z C# dużo do czynienia być może okaże się, że jest to banalne, jednak po przeszukaniu sieci nie udało mi się znaleźć rozwiązania)
i mam bazę danych, i listę wyświetlającą rekordy tej bazy.
Problem polega na tym, że chciałbym napisać wyszukiwarkę dynamiczną (chociaż nie jestem pewien czy jest to poprawne określenie) działającą mniej więcej w ten sposób:

listbox z przykładowymi nazwiskami
Kowalski
Nowak
Kubiak
Małpa
Skowronek

i textbox do którego po wpisaniu np 'ak' na liście zostaną nazwiska Nowak i Kubiak wraz z dodatkowym pogrubieniem tekstu wpisanego do textboxa (co prawda to juz jest dosc proste)

edit:
Co do pytania, czy ktos mialby pomysl na napisanie tego typu wyszukiwarki, bo siedze juz troche i jedyne co udalo mi sie napisac to zaznaczanie pozycji na listboxie zawierajacej tekst z textboxa ;/

0

a gdzie pytanie? jak powstanie pytanie to i odpowiedź się znajdzie. Czytałem parę razy to co napisałeś i dalej nie wiem o co ci chodzi ;/

0

hmm nie do konca o to mi chodzilo,
textbox z autouzupelnieniem, co prawda rowniez mi sie przyda wiec dzieki :),
ale chodzi mi o to zeby listbox hmm jakby dynamicznie filtrowal zawartosc w zaleznosci od tego co jest wpisywane do textboxa lub
np za pomoca przyciskow [A] [B] [C]....[Z] wyswietlal tylko nazwy zaczynajace sie na dana litere (takie dwie wersje rozwazam i nie wiem ktora prosciej by bylo wykonac)
w kazdym razie chodzi chyba o filtr w listboxie - czy C# umozliwia to jakos?

edit:
co do textboxa i autocomplete
a czy można jakoś określić rozmiar listy ktora sie wyswietla po rozpoczeciu wpisywania, zeby w przypadku 50 pasujacych pozycji wyswietlalo mi np 4 i scrollbar?

0

Filtrowanie ListBoxa na podstawie TextBoxa możesz zrealizować bardzo łatwo, wystarczy obsłużyć zdarzenie TextChanged np. w taki sposób:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    TextBox txt = sender as TextBox;
    this.listBox1.DataSource = this.somePersons.Where(q => q.StartsWith(txt.Text)).ToArray();
}

Co do ustawienia maksymalnej liczby elementów w podpowiedzi do TextBoxa, to chyba się tak łatwo nie da. Ale możesz użyć ComboBox z ustawionym DropDownStyle na Simple i MaxDropDownItems na jaką chcesz wartość. Do tego oczywiście wszystkie właściwości związane z AutoComplete, jak w TextBox.

1 użytkowników online, w tym zalogowanych: 0, gości: 1