Návod: Předvedení vizuální dědičnosti
Vizuální dědičnost umožňuje zobrazit ovládací prvky v základním formuláři a přidat nové ovládací prvky. V tomto názorném postupu vytvoříte základní formulář a zkompilujete ho do knihovny tříd. Tuto knihovnu tříd naimportujete do jiného projektu a vytvoříte nový formulář, který dědí ze základního formuláře. V tomto názorném postupu se naučíte:
Vytvořte projekt knihovny tříd obsahující základní formulář.
Přidejte tlačítko s vlastnostmi, které odvozené třídy základního formuláře mohou upravit.
Přidejte tlačítko, které nelze upravit zdědědiči základního formuláře.
Vytvořte projekt obsahující formulář, který dědí z
BaseForm
.
V konečném důsledku tento názorný postup ukáže rozdíl mezi soukromými a chráněnými ovládacími prvky v zděděném formuláři.
Opatrnost
Ne všechny ovládací prvky podporují vizuální dědičnost ze základního formuláře. Následující ovládací prvky nepodporují scénář popsaný v tomto návodu:
Tyto ovládací prvky v zděděné podobě jsou vždy jen pro čtení bez ohledu na používané modifikátory (private
, protected
nebo public
).
Vytvoření projektu knihovny tříd obsahující základní formulář
V sadě Visual Studio v nabídce Soubor zvolte Nový>Projekt a otevřete dialogové okno Nový Projekt.
Vytvořte aplikaci Windows Forms s názvem
BaseFormLibrary
.Chcete-li vytvořit knihovnu tříd místo standardní aplikace Windows Forms, klikněte v průzkumníku řešení pravým tlačítkem myši na uzel projektu BaseFormLibrary a vyberte Vlastnosti.
Ve vlastnostech projektu změňte typ výstupu
z aplikace systému Windows naknihovny tříd. V nabídce Soubor zvolte Uložit vše a uložte projekt a soubory do výchozího umístění.
Následující dva postupy přidávají tlačítka do základního formuláře. Pokud chcete předvést vizuální dědičnost, dáte tlačítkům různé úrovně přístupu nastavením jejich Modifiers
vlastností.
Přidání tlačítka, které dědíci základního formuláře mohou upravit
Otevřete Form1 v návrhovém prostředí.
Na kartě
Všechny formuláře Windows Forms panelu nástrojůpoklikejte na tlačítko a přidejte do formuláře tlačítko. K umístění a změně velikosti tlačítka použijte myš. V okně Vlastnosti nastavte následující vlastnosti tlačítka:
Nastavte vlastnost Text na Řekni Ahoj.
Nastavte vlastnost (Name) na btnProtected.
Nastavte vlastnost Modifikátory na chráněná . To umožňuje formulářům, které dědí z Form1 upravit vlastnosti btnProtected.
Poklikejte na tlačítko Say Hello a přidejte obslužnou rutinu události pro událost Click.
Do obslužné rutiny události přidejte následující řádek kódu:
MessageBox.Show("Hello, World!")
MessageBox.Show("Hello, World!");
Přidat tlačítko, které nelze upravit dědici základního formuláře
Přepněte do návrhového zobrazení kliknutím na Form1.vb [Návrh], Form1.cs [Návrh] nebo Form1.jsl [Návrh] kartu nad editorem kódu nebo stisknutím klávesy F7.
Přidejte druhé tlačítko a nastavte jeho vlastnosti následujícím způsobem:
Nastavte vlastnost Text na Řekni sbohem.
Nastavte vlastnost (Name) na btnPrivate.
Nastavte vlastnost modifikátorů na Private. To znemožňuje formulářům, které dědí z Form1, aby mohly upravovat vlastnosti btnPrivate.
Dvojklikněte na tlačítko Řekněte sbohem pro přidání obslužné rutiny pro událost Click. Do procedury události umístěte následující řádek kódu:
MessageBox.Show("Goodbye!")
MessageBox.Show("Goodbye!");
V nabídce Sestavení zvolte Vytvořit knihovnu BaseForm pro sestavení knihovny.
Po sestavení knihovny můžete vytvořit nový projekt, který dědí z právě vytvořeného formuláře.
Vytvoření projektu obsahujícího formulář, který dědí ze základního formuláře
Z nabídky Soubor zvolte Přidat a pak Nový projekt, aby se otevřelo dialogové okno Přidat nový projekt.
Vytvořte aplikaci Windows Forms s názvem
InheritanceTest
.
Přidání zděděného formuláře
V Průzkumník řešeníklikněte pravým tlačítkem na projekt InheritanceTest, vyberte Přidata následně vyberte Nová položka.
V dialogovém okně Přidat novou položku vyberte kategorii Windows Forms (pokud máte seznam kategorií) a pak vyberte šablonu zděděný formulář.
Ponechte výchozí název
Form2
a klikněte na Přidat.V dialogovém okně pro výběr dědičnosti
vyberte Form1 z projektu BaseFormLibrary jako formulář, ze které chcete dědit, a klikněte naOK .Tím se vytvoří formulář v projektu InheritanceTest, který je odvozen od formuláře v BaseFormLibrary.
Otevřete zděděný formulář (Formulář2) v návrháři poklikáním, pokud ještě není otevřený.
V návrháři mají zděděná tlačítka v horním rohu symbol (
) označující, že jsou zděděné.
Vyberte tlačítko Řekni Hello a podívejte se na úchyty pro změnu velikosti. Vzhledem k tomu, že je toto tlačítko chráněné, můžou ho dědiče přesunout, změnit jeho velikost, změnit jeho titulek a provádět další úpravy.
Vyberte soukromé tlačítko Řekněte sbohem a všimněte si, že nemá úchyty pro změnu velikosti. Kromě toho, v okně Vlastnosti jsou vlastnosti tohoto tlačítka zobrazeny šedě, aby bylo patrné, že je nelze změnit.
Pokud používáte Visual C#:
V Průzkumníku řešeníklikněte pravým tlačítkem na Form1 v projektu InheritanceTest a potom zvolte Odstranit. V zobrazeném okně zprávy potvrďte odstranění kliknutím na OK.
Otevřete soubor Program.cs a změňte
Application.Run(new Form1());
řádku naApplication.Run(new Form2());
.
V Průzkumníku řešeníklikněte pravým tlačítkem myši na projekt InheritanceTest a zvolte Nastavit jako spouštěný projekt.
V Průzkumníku řešeníklikněte pravým tlačítkem na projekt InheritanceTest a pak vyberte Vlastnosti.
V DědičnostTest stránky vlastností nastavte objekt Startup být zděděný formulář (Form2).
Stisknutím klávesy F5 spusťte aplikaci a sledujte chování zděděného formuláře.
Další kroky
Dědičnost uživatelských ovládacích prvků funguje podobně. Otevřete nový projekt knihovny tříd a přidejte uživatelský ovládací prvek. Umístěte na něj základní ovládací prvky a zkompilujte projekt. Otevřete jiný nový projekt knihovny tříd a přidejte odkaz na zkompilovanou knihovnu tříd. Také zkuste do projektu přidat zděděný ovládací prvek (prostřednictvím dialogového okna Přidat nové položky) a použít Výběr dědičnosti. Přidejte uživatelský ovládací prvek a změňte Inherits
(:
v jazyce Visual C#). Další informace naleznete v tématu Postupy: Dědění modelu Windows Forms.
Viz také
.NET Desktop feedback