Typy vlastních ovládacích prvků
S rozhraním .NET Framework můžete vyvíjet a implementovat nové ovládací prvky. Funkce známého uživatelského ovládacího prvku a existujících ovládacích prvků můžete rozšířit prostřednictvím dědičnosti. Můžete také napsat vlastní ovládací prvky, které provádějí vlastní vykreslování.
Rozhodování o tom, jaký druh ovládacího prvku se má vytvořit, může být matoucí. Toto téma popisuje rozdíly mezi různými druhy ovládacích prvků, ze kterých můžete dědit, a poskytuje informace o tom, jak zvolit konkrétní druh ovládacího prvku pro váš projekt.
Poznámka
Informace o vytváření ovládacího prvku pro použití ve webových formulářích naleznete v tématu Vývoj vlastních ovládacích prvků ASP.NET Server.
Základní třída ovládacího prvku
Třída Control je základní třídou pro ovládací prvky Windows Forms. Poskytuje infrastrukturu potřebnou pro vizuální zobrazení v aplikacích Windows Forms.
Třída Control provádí následující úlohy, které poskytují vizuální zobrazení v aplikacích Windows Forms:
Zveřejňuje popisovač okna.
Spravuje směrování zpráv.
Poskytuje události myši a klávesnice a mnoho dalších událostí uživatelského rozhraní.
Poskytuje pokročilé funkce rozložení.
Obsahuje mnoho vlastností specifických pro zobrazení vizuálů, například ForeColor, BackColor, Heighta Width.
Poskytuje podporu zabezpečení a vláken potřebnou k tomu, aby ovládací prvek Windows Forms mohl fungovat jako ovládací prvek Microsoft® ActiveX®.
Vzhledem k tomu, že základní třída poskytuje tolik infrastruktury, je relativně snadné vyvíjet vlastní ovládací prvky Windows Forms.
Druhy ovládacích prvků
Windows Forms podporuje tři druhy uživatelsky definovaných ovládacích prvků: složené, rozšířenéa vlastní. Následující části popisují jednotlivé druhy řízení a poskytují doporučení pro výběr typu, který se má použít ve vašich projektech.
Složené ovládací prvky
Složený ovládací prvek je kolekce ovládacích prvků Windows Forms zapouzdřená do společného kontejneru. Tento druh ovládacího prvku se někdy nazývá uživatelský ovládací prvek. Obsažené ovládací prvky se nazývají součástkových ovládacích prvků.
Složený ovládací prvek obsahuje všechny základní funkce přidružené ke každému z obsažených ovládacích prvků Windows Forms a umožňuje selektivně zveřejnit a svázat jejich vlastnosti. Složený ovládací prvek také poskytuje spoustu výchozích funkcí pro zpracování klávesnice bez dalšího úsilí z vaší strany.
Složený ovládací prvek může být například sestaven tak, aby zobrazoval data adres zákazníků z databáze. Tento ovládací prvek může zahrnovat ovládací prvek DataGridView pro zobrazení databázových polí, BindingSource pro zpracování vazby ke zdroji dat a ovládací prvek BindingNavigator pro procházení záznamů. Můžete selektivně zveřejnit vlastnosti datové vazby a můžete zabalit a znovu použít celý ovládací prvek z aplikace do aplikace. Příklad tohoto typu složeného ovládacího prvku naleznete v tématu Postupy: Použití atributů v ovládacích prvcích Windows Forms.
Chcete-li vytvořit složený ovládací prvek, odvodit z UserControl třídy. Základní třída UserControl poskytuje směrování klávesnice pro podřízené ovládací prvky a umožňuje podřízeným ovládacím prvkům pracovat jako skupina. Další informace naleznete v tématu Vývoj složeného ovládacího prvku Windows Forms.
doporučení
Dědí z třídy UserControl, pokud:
- Chcete zkombinovat funkce několika ovládacích prvků Windows Forms do jedné opakovaně použitelné jednotky.
Rozšířené ovládací prvky
Zděděný ovládací prvek můžete odvodit z libovolného existujícího ovládacího prvku Windows Forms. Pomocí tohoto přístupu můžete zachovat všechny základní funkce ovládacího prvku Windows Forms a pak tuto funkci rozšířit přidáním vlastních vlastností, metod nebo jiných funkcí. Pomocí této možnosti můžete přepsat logiku malování základního ovládacího prvku a rozšířit jeho uživatelské rozhraní změnou vzhledu.
Můžete například vytvořit ovládací prvek odvozený z ovládacího prvku Button, který sleduje, kolikrát na něj uživatel kliknul.
V některých ovládacích prvcích můžete také přidat vlastní vzhled do grafického uživatelského rozhraní ovládacího prvku přepsáním OnPaint metody základní třídy. U rozšířeného tlačítka, které sleduje kliknutí, můžete přepsat metodu OnPaint k zavolání základní implementace OnPainta potom nakreslit počet kliknutí v jednom rohu klientské oblasti ovládacího prvku Button.
doporučení
Dědí z ovládacího prvku Windows Forms, pokud:
Většina funkcí, které potřebujete, je již identická s existujícím ovládacím prvek Windows Forms.
Nepotřebujete vlastní grafické uživatelské rozhraní nebo chcete navrhnout nové grafické uživatelské rozhraní pro existující ovládací prvek.
Vlastní ovládací prvky
Dalším způsobem, jak vytvořit ovládací prvek, je vytvořit ho téměř od začátku děděním z Control. Třída Control poskytuje všechny základní funkce vyžadované ovládacími prvky, včetně zpracování událostí myši a klávesnice, ale žádné funkce specifické pro ovládací prvky ani grafické rozhraní.
Vytvoření ovládacího prvku děděním z třídy Control vyžaduje mnohem větší myšlenku a úsilí než dědění z UserControl nebo existujícího ovládacího prvku Windows Forms. Vzhledem k tomu, že pro vás zbývá velké množství implementace, může mít váš ovládací prvek větší flexibilitu než složený nebo rozšířený ovládací prvek a můžete si ovládací prvek přizpůsobit tak, aby vyhovoval vašim přesným potřebám.
Pokud chcete implementovat vlastní ovládací prvek, musíte napsat kód pro OnPaint událost ovládacího prvku a také libovolný kód specifický pro funkci, který potřebujete. Můžete také přepsat WndProc metodu a zpracovávat zprávy oken přímo. Toto je nejúčinnější způsob, jak vytvořit ovládací prvek, ale pokud chcete tuto techniku efektivně používat, musíte být obeznámeni s rozhraním MICROSOFT Win32® API.
Příkladem vlastního ovládacího prvku je ovládací prvek hodin, který duplikuje vzhled a chování analogových hodin. Vlastní malování je vyvoláno, aby se ruce hodin přesunuly v reakci na Tick události z interní Timer komponenty. Další informace naleznete v tématu Postupy: Vývoj jednoduchého ovládacího prvku Windows Forms.
doporučení
Dědí z třídy Control, pokud:
Chcete poskytnout vlastní grafické znázornění ovládacího prvku.
Je potřeba implementovat vlastní funkce, které nejsou dostupné prostřednictvím standardních ovládacích prvků.
Ovládací prvky ActiveX
I když je infrastruktura Windows Forms optimalizovaná pro hostování ovládacích prvků Windows Forms, můžete i nadále používat ovládací prvky ActiveX. Tato úloha je v sadě Visual Studio podporována. Další informace naleznete v tématu Postupy: Přidání ovládacích prvků ActiveX do windows Forms.
Ovládací prvky bez oken
Technologie ActiveX jazyka Microsoft Visual Basic® 6.0and podporují ovládací prvky bez oken. Windows Forms nepodporuje ovládací prvky bez oken.
Vlastní prostředí návrhu
Pokud potřebujete implementovat vlastní zážitek při návrhu, můžete vytvořit svého vlastního návrháře. U složených ovládacích prvků odvozujte vlastní třídu návrháře z ParentControlDesigner nebo třídy DocumentDesigner. U rozšířených a vlastních ovládacích prvků odvozujte vlastní třídu návrháře z třídy ControlDesigner.
Pomocí DesignerAttribute přidružte svůj ovládací prvek k návrháři. Další informace najdete v tématu Rozšíření Design-Time podpory a Postupy: Vytvoření ovládacího prvku Windows Forms, který využívá funkce Design-Time.
Viz také
.NET Desktop feedback