Vlastní ovládací prvky (Windows Forms .NET)
Ve Windows Forms můžete vytvářet nové ovládací prvky nebo upravovat existující ovládací prvky prostřednictvím dědičnosti. Tento článek popisuje rozdíly mezi způsoby vytváření nových ovládacích prvků a poskytuje informace o tom, jak zvolit konkrétní typ ovládacího prvku pro váš projekt.
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 a poskytuje následující možnosti:
- 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.
Vzhledem k tomu, že základní třída poskytuje tolik infrastruktury, je relativně snadné vyvíjet vlastní ovládací prvky Windows Forms.
Vytvoření vlastního ovládacího prvku
Existují tři typy vlastních ovládacích prvků, které můžete vytvořit: uživatelské ovládací prvky, rozšířené ovládací prvky a vlastní ovládací prvky. Následující tabulka vám pomůže určit, jaký typ ovládacího prvku byste měli vytvořit:
Když... | Vytvořit ... |
---|---|
|
Návrh uživatelského ovládacího prvku děděním z System.Windows.Forms.UserControl. |
|
Rozšiřte ovládací prvek děděním z konkrétního ovládacího prvku Windows Forms. |
|
Vytvořte vlastní ovládací prvek děděním ze System.Windows.Forms.Control. |
Uživatelské ovládací prvky
Uživatelský ovládací prvek je kolekce ovládacích prvků Windows Forms prezentovaných jako jediný ovládací prvek příjemci. Tento ovládací prvek se označuje jako složený ovládací prvek . Ovládací prvky, které jsou obsaženy, se nazývají součástí ovládacích prvků.
Uživatelský 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. Uživatelský ovládací prvek také poskytuje velké množství základních funkcí pro zpracování klávesnice bez jakéhokoliv dalšího úsilí z vaší strany na vývoj.
Například uživatelský ovládací prvek může být sestaven tak, aby zobrazoval data adres zákazníků z databáze. Tento ovládací prvek by zahrnoval 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.
Další informace naleznete v tématu Přehled uživatelského ovládacího prvku.
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. Díky tomuto 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, abyste zavolali základní implementaci OnPaint, a poté nakreslili počet kliknutí v jednom rohu klientské oblasti ovládacího prvku Button.
Vlastní ovládací prvky
Dalším způsobem, jak vytvořit ovládací prvek, je vytvořit jej podstatně od základu děděním z Control. Třída Control poskytuje veškerou základní funkčnost vyžadovanou ovládacími prvky, včetně zpracování událostí myši a klávesnice, ale neposkytuje žádnou funkci specifickou pro ovládací prvky ani grafické rozhraní.
Vytvoření ovládacího prvku děděním z třídy Control vyžaduje 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.
Chcete-li implementovat vlastní ovládací prvek, musíte napsat kód pro OnPaint událost ovládacího prvku, který určuje, jak je ovládací prvek vizuálně vykreslen. Musíte také napsat všechna chování specifická pro funkce vašeho ovládacího prvku. Můžete také přepsat metodu WndProc 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.
Vlastní prostředí návrhu
Pokud potřebujete implementovat vlastní prostředí pro návrh, můžete vytvořit 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řipojte svůj ovládací prvek k vašemu návrháři.
Následující informace jsou zastaralé, ale můžou vám pomoct.
.NET Desktop feedback