Zmiana zdarzeń standardowej kontrolki.

0

Witam.

Czy możecie mi łopatologicznie wytłumaczyć w jaki sposób mogę zmienić standardowe działanie "fabrycznej" kontrolki ?

Konkretnie chodzi mi o to co wyświetla się w "podpowiedziach" ComboBox (a raczej w jaki sposób jest to filtrowane).

Z góry dziękuję.

0

Nie wiem co dokładnie rozumiesz przez słowo "Podpowiedziach", ale jeśli dobrze rozumiem, przejrzyj następujące odnośniki:
https://msdn.microsoft.com/pl-pl/library/bb383977.aspx
https://msdn.microsoft.com/pl-pl/library/edzehd2t(v=vs.110).aspx

Już bardziej łopatologicznie się chyba nie da.

0

Już rozwijam wypowiedź :).

W ComboBox'ie mam AutoCompleteSource = CustomSource a w AutoCompleteCustomSource przykładowo taki zestaw:

AROMAT LIBELLA POMAR 5G
AROMAT DROETKER POMAR 5G
AROMAT LIBELLA CYTR 5G
AROMAT DROETKER CYTR 5G
AROMAT LIBELLA ARAK 5G
AROMAT DROETKER ARAK 5G
AROMAT LIBELLA RUM 5G
AROMAT DROETKER RUM 5G
AROMAT LIBELLA MIGDAL 5G
AROMAT DROETKER MIGDAL 5G
AROMAT LIBELLA WANIL 5G
AROMAT DROETKER WANIL 5G

Chciałbym abym mógł wpisać :

Np: AR WA - i żeby w tej chwili wyświetliło:

AROMAT LIBELLA WANIL 5G
AROMAT DROETKER WANIL 5G

lub: ARAK - i żeby w tej chwili wyświetliło:

AROMAT LIBELLA ARAK 5G
AROMAT DROETKER ARAK 5G

Czyli nie wyszukuje od lewej tylko porównuje każdy wyraz ciągu który wpisze z każdym słowem poszczególnego rekordu AutoCompleteCustomSource

ps. A zdanie o ilości postów nie do końca rozumiem ;)

dodanie znaczników <code class="none"> - @furious programming

0

W takim razie sam musisz napisać algorytm przeszukujący, ponieważ "AutoCompleteSource" tego nie oferuje. Proponuję ci skorzystać z zdarzenia "TextChanged" oraz Regex'a chociaż nie wiem jak się będzie to miało do wydajności wyszukiwania.

Jeżeli korzystasz z bazy danych to masz ją kompletnie źle zorganizowaną. Według mnie powinieneś mieć kolumnę TYP ( w niej np AROMAT, PROSZEK etc. ), Rozmiar ( w niej 5G, 10G, 15G itd. ), Marka ( Libella, DROETKER ... ), Rodzaj ( POMAR, CYTR, RUM itd ). Wtedy wyszukiwanie dla klienta stało by się dużo łatwiejsze. Stworzył byś te 4 dość przejrzyste "comBobox'y" i wtedy "AutoCompleteSource" w pełni spełnił by swoje przeznaczenie.

Na pewno zyskał byś na tym ty oraz potencjalny klient który dostał by dość przejrzysty interfejs ;)

0

kod wygląda jakby był pisany pod pierwszą wersję Frameworka, ale może się nada:
http://www.dreamincode.net/forums/topic/34785-create-an-autocomplete-textbox-control-in-c%23/

0

@wojas666:

  1. Jest to baza dość znanego programu magazynowo-sprzedażowego. Po za nazwami (które widać w przykładzie) istnieje rozbudowana definiowalna klasyfikacja (można zrobić np tak jak Ty zaproponowałeś).
  2. Wspomniałeś o zdarzeniu TextChanged - jak tym zdarzeniem wpłynąć na zawartość listy "podpowiedzi" (nie mogę znaleźć miejsca w którym jest ona "rysowana" i uzupełniania...)

@Azarien dziękuję za linka ale chyba nie uda mi się tego wykorzystać - co prawda mógłbym zmienić sposób wyszukiwania w źródle danych ale działa to na zasadzie "Suggest" a lista propozycji w ogóle się nie pokazuje, więc w moim przypadku jest to bezużyteczne.

Pomyślałem, że w ostateczności można by było dynamicznie tworzyć ListBox'a pod TextBox'em, w nim wyświetlać co się chce, i kontrolować focus (jak użytkownik naciśnie strzałkę w dół to focus przenieść na listę, jak przycisk a-z, 1-0 to powrót na TextBox. Dobrze kombinuję :) ?

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