Sdílet prostřednictvím


Vlastní ovládací prvky (model Windows Forms .NET)

S model Windows Forms můžete vyvíjet a implementovat nové ovládací prvky. Můžete vytvořit nový uživatelský ovládací prvek, upravit existující ovládací prvky prostřednictvím dědičnosti nebo napsat vlastní ovládací prvek, který dělá vlastní obraz. Tento článek 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í typ ovládacího prvku pro váš projekt.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Základní třída ovládacího prvku

Třída Control je základní třídou pro model Windows Forms ovládací prvky. Poskytuje infrastrukturu potřebnou pro vizuální zobrazení v aplikacích model 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álu, 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 model 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:

Pokud... Vytvořit ...
  • Chcete zkombinovat funkce několika ovládacích prvků model Windows Forms do jedné opakovaně použitelné jednotky.
Návrh uživatelského ovládacího prvku děděním z System.Windows.Forms.UserControl.
  • Většina funkcí, které potřebujete, je již identická s existujícím ovládacím model Windows Forms ovládacím prvku.
  • Nepotřebujete vlastní grafické uživatelské rozhraní nebo chcete navrhnout nové grafické uživatelské rozhraní pro existující ovládací prvek.
Rozšíření ovládacího prvku děděním z určitého ovládacího prvku model Windows Forms
  • Chcete poskytnout vlastní grafické znázornění ovládacího prvku.
  • Musíte implementovat vlastní funkce, které nejsou dostupné prostřednictvím standardních ovládacích prvků.
Vytvořte vlastní ovládací prvek zděděním ze system.Windows.Forms.Control.

Uživatelské ovládací prvky

Uživatelský ovládací prvek je kolekce ovládacích prvků model Windows Forms prezentovaných jako jediný ovládací prvek pro příjemce. Tento druh ovládacího prvku se označuje jako složený ovládací prvek. Obsažené ovládací prvky se nazývají základní ovládací prvky.

Uživatelský ovládací prvek obsahuje všechny vlastní funkce přidružené ke každému z obsažených ovládacích prvků model Windows Forms a umožňuje selektivně zveřejnit a svázat jejich vlastnosti. Uživatelský ovládací prvek také poskytuje spoustu výchozích funkcí pro zpracování klávesnice bez dalšího úsilí o vývoj ve vaší části.

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 DataGridView ovládací prvek pro zobrazení databázových polí, BindingSource popisovač vazby ke zdroji dat a BindingNavigator ovládací prvek 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 najdete 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 jakéhokoli existujícího ovládacího prvku model Windows Forms. Díky tomuto přístupu můžete zachovat všechny základní funkce ovládacího prvku model 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 Button ovládacího prvku, 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 OnPaint metodu volání základní implementace OnPainta potom nakreslit počet kliknutí v jednom rohu Button klientské oblasti ovládacího prvku.

Vlastní ovládací prvky

Dalším způsobem, jak vytvořit ovládací prvek, je vytvořit jeden podstatně 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ě událostí zpracování myši a klávesnice, ale žádné funkce specifické pro řízení ani grafické rozhraní.

Vytvoření ovládacího prvku děděním z Control třídy vyžaduje větší myšlenku a úsilí než dědění z UserControl existujícího ovládacího prvku model 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ý řídí, jak je ovládací prvek vizuálně vykreslen. Musíte také napsat všechna chování specifická pro danou funkci pro váš ovládací prvek. Můžete také přepsat metodu WndProc a zpracovat zprávy systému Windows 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í se vyvolá, 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 ParentControlDesigner z tříd nebo z nich DocumentDesigner . U rozšířených a vlastních ovládacích prvků odvozujte třídu vlastního návrháře ControlDesigner z třídy.

DesignerAttribute Pomocí ovládacího prvku přidružte svůj ovládací prvek k návrháři.

Následující informace jsou zastaralé, ale můžou vám pomoct.