Vlastní komponenta   otázka

VB.NET, Komponenty, WinForms

Vytvářím si vlastní ComboBox se slovníkovou nápovědou a narazil jsem na problém... Při nějaké události bych chtěl zobrazit naplněný ListBox pod ComboBoxem. Ten si vytvářím uvnitř ComboBoxu. Problém je ale v tom, že jej musím přiřadit do nějakého kontejneru, aby byl schopný se vykreslit, a přímo v Comboboxu to nelze (cmb.Controls.Add). Prosím tedy o radu, jak bych to mohl vyřešit, popř. jiný návrh na nějakou rozbalovací nabídku. Zkouším něco takového poprvé... Děkuji za odpověď

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím zda jsem to správně pochopil, tak tedy:

-máte combobox

-pokud nastane určitá událost, potřebujete pod comboBoxem zobrazit listbox

Pokud to je takhle, jde to celkem elegantně vyřešit tak, že si vytvoříte nový ovládací prvek typu UserControl (přidáte ho do projektu stejně jak například formulář). Na tento userControl umístíte combobox i listbox. Listboxu nastavíte defaultně visible=false a v comboboxu ošetříte Vámi požadovanou událost ve které nastavíte listbox1.visible=true.

Výhodou je, že tento ovládací prvek budete mít připraven pro dalši použití kdekoliv ve vaší aplikaci a kód ošetřující viditelnost listboxu bude oddělen od ostatního funkčního kódu aplikace.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zbytečně složité a neefektivní. Použijte obyčejný TextBox, který má možnost automatického dokončování (dá se použít pro nabízení seznamu slov). Nastudujte si vlastnosti AutoCompleteCustomSource, AutoCompleteMode a AutoCompleteSource.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback