Sdílet prostřednictvím


Návod: Dědění z ovládacího prvku Windows Forms pomocí jazyka C#

V jazyce C# můžete vytvářet výkonné vlastní ovládací prvky dědičností . Prostřednictvím dědičnosti můžete vytvářet ovládací prvky, které si zachovají všechny základní funkce standardních ovládacích prvků Windows Forms, ale také zahrnují vlastní funkce. V tomto návodu 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 Windows Forms Button a zpřístupní 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

  1. V sadě Visual Studio vytvořte novou knihovnu ovládacích prvků Windows Forms projektu a pojmenujte ji 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ů se používá ke specifikaci názvů komponent v sestavení. Pokud například dvě sestavení poskytují součásti s názvem ValueButton, můžete určit ValueButton komponentu pomocí ValueButtonLib.ValueButton. Další informace naleznete v tématu Jmenné prostory.

  2. V Průzkumníku řešeníklikněte pravým tlačítkem myši na UserControl1.csa potom v místní nabídce zvolte Přejmenovat. Změňte název souboru na ValueButton.cs. Když se zobrazí dotaz, jestli chcete přejmenovat všechny odkazy na prvek kóduUserControl1, klikněte na tlačítko Ano.

  3. V Průzkumník řešeníklikněte pravým tlačítkem na ValueButton.cs a vyberte Zobrazit kód .

  4. Vyhledejte řádek příkazu class, public partial class ValueButtona změňte typ, ze kterého tento ovládací prvek dědí z UserControl na Button. To umožňuje zděděným ovládacím prvkům dědit všechny funkce ovládacího prvku Button.

  5. V Průzkumníku ř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.

  6. Vyhledejte InitializeComponent metodu a odeberte řádek, který přiřadí AutoScaleMode vlastnost. Tato vlastnost v ovládacím prvku Button neexistuje.

  7. V nabídce Soubor zvolte Uložit vše a projekt uložte.

    Poznámka

    Vizuální návrhář už není k dispozici. Vzhledem k tomu, že ovládací prvek Button provádí vlastní vykreslování, nemůžete změnit jeho vzhled v návrhovém prostředí. Jeho vizuální reprezentace bude přesně stejná jako třída, ze které dědí (tj. Button), pokud není v kódu upravena. Do návrhové plochy můžete přidat komponenty, které nemají žádné prvky uživatelského rozhraní.

Přidejte vlastnost 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ů Windows Forms je vytváření ovládacích prvků, které jsou identické ve vzhledu a chování standardních ovládacích prvků Windows Forms, ale zveřejňují vlastní vlastnosti. V této části přidáte do ovládacího prvku vlastnost s názvem ButtonValue.

Přidejte vlastnost Value

  1. Ve Průzkumníku řešeníklepněte pravým tlačítkem na ValueButton.csa potom v místní nabídce klepněte na příkaz Zobrazit kód.

  2. Vyhledejte příkaz class. Bezprostředně za {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, pomocí kterých je vlastnost ButtonValue uložena a načtena. Příkaz get nastaví hodnotu vrácenou na hodnotu uloženou v privátní proměnné varValuea příkaz set nastaví hodnotu privátní proměnné pomocí klíčového slova value.

  3. V nabídce Soubor zvolte Uložit vše a projekt uložte.

Otestování ovládacího prvku

Ovládací prvky nejsou samostatné projekty; musí být hostované v kontejneru. Abyste mohli váš ovládací prvek otestovat, musíte zadat testovací projekt, ve kterém 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

  1. V nabídce soubor přejděte na Přidat a potom kliknutím na Nový projekt otevřete dialogové okno Přidat nový projekt.

  2. Vyberte uzel Windows, který je pod uzlem Visual C#, a klikněte na aplikaci Windows Forms .

  3. Do pole Název zadejte Test.

  4. V Průzkumníku ř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 a zobrazte dialogové okno Přidat odkaz.

  5. Klikněte na kartu označenou "Projekty". Váš projekt ValueButtonLib bude uveden v části Název projektu. Dvojklikněte na projekt, abyste přidali odkaz na testovací projekt.

  6. V Průzkumníku řešení klikněte pravým tlačítkem na Test a vyberte Sestavení.

Přidání ovládacího prvku do formuláře

  1. V Průzkumníku řešeníklikněte pravým tlačítkem na Form1.cs a v místní nabídce zvolte Návrhář zobrazení.

  2. Vpanelu nástrojů vyberte Součásti ValueButtonLib. Poklikejte na ValueButton.

    Na formuláři se zobrazí ValueButton.

  3. Kliknutím pravým tlačítkem myši na ValueButton a v kontextové nabídce vyberte Vlastnosti.

  4. 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.

  5. Vlastnost ButtonValue nastavte na 5.

  6. Na kartě Všechny formuláře Windows Formspanelu nástrojů poklikejte na Popisek a přidejte do formuláře ovládací prvek .

  7. Přemísťujte popisek na střed formuláře.

  8. Dvakrát klikněte na valueButton1.

    Editor kódu se otevře na události valueButton1_Click.

  9. Vložte následující řádek kódu.

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. V Průzkumníku řešeníklikněte pravým tlačítkem na Testa v místní nabídce zvolte Nastavit jako spouštěcí projekt.

  11. V nabídce Ladění zvolte Spustit ladění.

    Form1 se zobrazí.

  12. Klikněte na valueButton1.

    Číslice 5 se zobrazí v label1, což ukazuje, že ButtonValue vlastnost zděděného ovládacího prvku byla předána label1 prostřednictvím metody valueButton1_Click. Proto váš ValueButton ovládací prvek dědí všechny funkce standardního tlačítka Windows Forms, ale zveřejňuje další vlastní vlastnost.

Viz také