Postupy: Dědění z existujících ovládacích prvků Windows Forms
Pokud chcete rozšířit funkčnost existujícího ovládacího prvku, můžete vytvořit ovládací prvek odvozený z existujícího ovládacího prvku prostřednictvím dědičnosti. Při dědění z existujícího ovládacího prvku dědíte všechny funkce a vizuální vlastnosti tohoto ovládacího prvku. Pokud jste například vytvořili ovládací prvek zděděný z Button, nový ovládací prvek by vypadal a fungoval přesně jako standardní ovládací prvek Button. Potom můžete rozšířit nebo upravit funkce nového ovládacího prvku prostřednictvím implementace vlastních metod a vlastností. V některých ovládacích prvcích můžete také změnit vizuální vzhled zděděného ovládacího prvku přepsáním metody OnPaint.
Vytvoření zděděného ovládacího prvku
V sadě Visual Studio vytvořte nový projekt aplikace Windows Forms.
V nabídce Project zvolte Přidat novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V dialogovém okně Přidat novou položku poklikejte na Vlastní ovládací prvek.
Do projektu se přidá nový vlastní ovládací prvek.
Pokud používáte:
- Visual Basic, v horní části Průzkumník řešení, klepněte na Zobrazit všechny soubory. Rozbalte CustomControl1.vb a potom otevřete CustomControl1.Designer.vb v Editoru kódu.
- V jazyce C# otevřete CustomControl1.cs v Editoru kódu.
Vyhledejte deklaraci třídy, která dědí z Control.
Změňte základní třídu na tu, ze které chcete dědit ovládací prvky.
Pokud například chcete dědit z Button, změňte deklaraci třídy na následující:
Partial Class CustomControl1 Inherits System.Windows.Forms.Button
public partial class CustomControl1 : System.Windows.Forms.Button
Pokud používáte Visual Basic, uložte a zavřete CustomControl1.Designer.vb. Otevřete CustomControl1.vb v Editoru kódu.
Implementujte všechny vlastní metody nebo vlastnosti, které bude ovládací prvek obsahovat.
Pokud chcete změnit grafický vzhled ovládacího prvku, přepište metodu OnPaint.
Poznámka
Přepsání OnPaint vám nedovolí změnit vzhled všech ovládacích prvků. Ovládací prvky, které mají celé své vykreslování provedené systémem Windows (například TextBox), nikdy nevolají OnPaint metodu, a proto nikdy nepoužijí vlastní kód. Informace o tom, jestli je metoda OnPaint dostupná, najdete v dokumentaci nápovědy ke konkrétnímu ovládacímu prvku, který chcete upravit. Seznam všech ovládacích prvků Windows Form naleznete v tématu Ovládací prvky, které se mají použít ve Windows Forms. Pokud ovládací prvek nemá OnPaint uveden jako člen metoda, nelze změnit jeho vzhled přepsáním této metody. Další informace o přizpůsobeném malování naleznete v tématu malování a vykreslování vlastního ovládacího prvku.
Protected Overrides Sub OnPaint(ByVal e As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e) ' Insert code to do custom painting. ' If you want to completely change the appearance of your control, ' do not call MyBase.OnPaint(e). End Sub
protected override void OnPaint(PaintEventArgs pe) { base.OnPaint(pe); // Insert code to do custom painting. // If you want to completely change the appearance of your control, // do not call base.OnPaint(pe). }
Uložte a otestujte ovládací prvek.
Viz také
.NET Desktop feedback