Návod: Dědění z ovládacího prvku model Windows Forms pomocí jazyka C#
Pomocí jazyka C# můžete vytvářet výkonné vlastní ovládací prvky prostřednictvím dědičnosti. Prostřednictvím dědičnosti můžete vytvářet ovládací prvky, které uchovávají všechny základní funkce standardních model Windows Forms ovládacích prvků, ale také zahrnují vlastní funkce. V tomto názorném postupu vytvoříte jednoduchý zděděný ovládací prvek s názvem ValueButton
. Toto tlačítko dědí funkce ze standardního ovládacího prvku model Windows Forms Button a zveřejní vlastní vlastnost s názvem ButtonValue
.
Vytvoření projektu
Při vytváření nového projektu zadáte jeho název, abyste nastavili kořenový obor názvů, název sestavení a název projektu a zajistili, že výchozí komponenta bude ve správném oboru názvů.
Vytvoření knihovny ovládacích prvků ValueButtonLib a ovládacího prvku ValueButton
V sadě Visual Studio vytvořte nový projekt knihovny ovládacích prvků model Windows Forms a pojmenujte ho ValueButtonLib.
Název projektu ,
ValueButtonLib
je také přiřazen ke kořenovému oboru názvů ve výchozím nastavení. Kořenový obor názvů slouží k určení názvů komponent v sestavení. Například pokud dvě sestavení poskytují komponenty pojmenovanéValueButton
, můžete určit komponentuValueButton
pomocíValueButtonLib.ValueButton
. Další informace naleznete v tématu Obory názvů.V Průzkumník řešení klikněte pravým tlačítkem na UserControl1.cs a pak v místní nabídce zvolte Přejmenovat. Změňte název souboru na ValueButton.cs. Po zobrazení výzvy, zda chcete přejmenovat všechny odkazy na prvek kódu '
UserControl1
' klikněte na tlačítko Ano.V Průzkumník řešení klikněte pravým tlačítkem na ValueButton.cs a vyberte Zobrazit kód.
class
Vyhledejte řádek příkazu a změňte typ,public partial class ValueButton
ze kterého tento ovládací prvek dědí z UserControl do Button. To umožňuje zděděný ovládací prvek dědit všechny funkce Button ovládacího prvku.V Průzkumník řešení otevřete uzel ValueButton.cs a zobrazte soubor kódu vygenerovaný návrhářem ValueButton.Designer.cs. Otevřete tento soubor v Editoru kódu.
Vyhledejte metodu
InitializeComponent
a odeberte řádek, který přiřazuje AutoScaleMode vlastnost. Tato vlastnost v ovládacím Button prvku neexistuje.V nabídce Soubor zvolte Uložit vše a uložte projekt.
Poznámka:
Vizuální návrhář už není k dispozici. Vzhledem k tomu, že Button ovládací prvek vlastní obraz, nemůžete změnit jeho vzhled v návrháři. Jeho vizuální reprezentace bude přesně stejná jako třída, Buttonze které dědí (tj. ) pokud není upravena v kódu. Do návrhové plochy můžete přidat komponenty, které nemají žádné prvky uživatelského rozhraní.
Přidání vlastnosti do zděděného ovládacího prvku
Jedním z možných použití zděděných ovládacích prvků model Windows Forms je vytvoření ovládacích prvků, které jsou identické vzhledem a chováním standardních ovládacích prvků model Windows Forms, ale zveřejňují vlastní vlastnosti. V této části přidáte do ovládacího prvku vlastnost volanou ButtonValue
.
Přidání vlastnosti Value
V Průzkumník řešení klepněte pravým tlačítkem na ValueButton.cs a potom klepněte na příkaz Zobrazit kód z místní nabídky.
class
Vyhledejte příkaz. Bezprostředně za znakem{
zadejte následující kód:// Creates the private variable that will store the value of your // property. private int varValue; // Declares the property. public int ButtonValue { // Sets the method for retrieving the value of your property. get { return varValue; } // Sets the method for setting the value of your property. set { varValue = value; } }
Tento kód nastaví metody,
ButtonValue
kterými je vlastnost uložena a načtena. Příkazget
nastaví hodnotu vrácenou na hodnotu uloženou v privátní proměnnévarValue
aset
příkaz nastaví hodnotu privátní proměnné pomocí klíčovéhovalue
slova.V nabídce Soubor zvolte Uložit vše a uložte projekt.
Otestování ovládacího prvku
Ovládací prvky nejsou samostatné projekty; musí být hostované v kontejneru. Abyste mohli svůj ovládací prvek otestovat, musíte zadat testovací projekt, ve který se má spustit. Ovládací prvek musíte také zpřístupnit testovacímu projektu tak, že ho sestavíte (kompilujete). V této části sestavíte ovládací prvek a otestujete ho ve formuláři Windows Form.
Sestavení ovládacího prvku
V nabídce Sestavení klikněte na Sestavit řešení. Sestavení by mělo být úspěšné bez chyb kompilátoru nebo upozornění.
Vytvoření testovacího projektu
V nabídce Soubor přejděte na příkaz Přidat a klepněte na tlačítko Nový projekt otevřete dialogové okno Přidat nový projekt.
Vyberte uzel Windows pod uzlem Visual C# a klikněte na model Windows Forms Aplikace.
Do pole Název zadejte Test.
V Průzkumník řešení klikněte pravým tlačítkem myši na uzel Reference pro váš testovací projekt a potom v místní nabídce vyberte Přidat odkaz, aby se zobrazilo dialogové okno Přidat odkaz.
Klikněte na kartu s popiskem Projekty. Projekt ValueButtonLib bude uvedený v části Název projektu. Poklikáním na projekt přidejte odkaz na testovací projekt.
V Průzkumník řešení klikněte pravým tlačítkem na Test a vyberte Sestavit.
Přidání ovládacího prvku do formuláře
V Průzkumník řešení klikněte pravým tlačítkem na Form1.cs a v místní nabídce zvolte Návrhář zobrazení.
Na panelu nástrojů vyberte Součásti ValueButtonLib. Poklikejte na ValueButton.
Ve formuláři se zobrazí hodnotaButton .
Klikněte pravým tlačítkem myši na hodnotu ValueButton a v místní nabídce vyberte Vlastnosti .
V okně Vlastnosti zkontrolujte vlastnosti tohoto ovládacího prvku. Všimněte si, že jsou identické s vlastnostmi vystavenými standardním tlačítkem, s tím rozdílem, že existuje další vlastnost ButtonValue.
Nastavte vlastnost ButtonValue na hodnotu 5.
Na kartě Vše model Windows Forms panelu nástrojů poklikejte na Popisek a přidejte Label do formuláře ovládací prvek.
Přemísťujte popisek na střed formuláře.
Poklikejte na
valueButton1
.Otevře se editor kódu události
valueButton1_Click
.Vložte následující řádek kódu.
label1.Text = valueButton1.ButtonValue.ToString();
V Průzkumník řešení klikněte pravým tlačítkem myši na Test a v místní nabídce zvolte Nastavit jako spouštěný projekt.
V nabídce Ladění vyberte Spustit ladění.
Form1
Zobrazí.Klikněte na
valueButton1
.Číslice 5 je zobrazena v
label1
, což ukazuje, žeButtonValue
vlastnost zděděného ovládacího prvku byla předánalabel1
prostřednictvímvalueButton1_Click
metody.ValueButton
Váš ovládací prvek tak dědí všechny funkce standardního tlačítka model Windows Forms, ale zpřístupní další vlastní vlastnost.
Viz také
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro