Sdílet prostřednictvím


Vytvoření ovládacího prvku Sady nástrojů Windows Forms

Šablona položky ovládacího prvku sady nástrojů Windows Forms, která je součástí nástrojů Visual Studio Extensibility Tools (VSSDK), umožňuje vytvořit ovládací prvek sady nástrojů, který se automaticky přidá při instalaci rozšíření. Tento návod ukazuje, jak pomocí šablony vytvořit jednoduchý ovládací prvek čítače, který můžete distribuovat ostatním uživatelům.

Vytvořit ovládací prvek Panelu nástrojů

Šablona ovládacího prvku Toolboxu Windows Forms vytvoří uživatelský ovládací prvek bez přednastavení a poskytuje veškeré funkce, které jsou nutné k přidání ovládacího prvku do Sady nástrojů.

Vytvoření rozšíření pomocí ovládacího prvku Windows Forms Toolbox

  1. Vytvořte projekt VSIX s názvem MyWinFormsControl. Šablonu projektu VSIX najdete v dialogovém okně Nový projekt vyhledáním "vsix".

  2. Po otevření projektu přidejte ovládací prvek panelu nástrojů Windows Forms šablonu položky s názvem Counter. V Průzkumníku řešení klikněte pravým tlačítkem na projektový uzel a vyberte Přidat>Nová položka. V dialogovém okně Přidat novou položku přejděte na Visual C#>Extensibility a vyberte Ovládací prvek Sady nástrojů Windows Forms

  3. Tím se přidá uživatelský ovládací prvek, ProvideToolboxControlAttributeRegistrationAttribute pro umístění ovládacího prvku do panelu nástrojůa položku Microsoft.VisualStudio.ToolboxControl Asset v manifestu VSIX pro nasazení.

Vytvoření uživatelského rozhraní pro ovládací prvek

Ovládací prvek Counter vyžaduje dva podřízené ovládací prvky: Label k zobrazení aktuálního počtu a Button k resetování počtu na 0. Nejsou vyžadovány žádné další podřízené ovládací prvky, protože volající programově zvýší čítač.

Sestavení uživatelského rozhraní

  1. V Průzkumníku řešenídvojklikem na Counter.cs ho otevřete v návrháři.

  2. Odeberte tlačítko Klikněte sem!, které se do panelu nástrojů Windows Forms přidává výchozím nastavením při vložení šablony položky ovládacího prvku.

  3. Ze panelu nástrojůpřetáhněte ovládací prvek Label a potom pod něj ovládací prvek Button na návrhovou plochu.

  4. Změňte velikost celkového uživatelského ovládacího prvku na 150, 50 pixelů a změňte velikost ovládacího prvku tlačítka na 50, 20 pixelů.

  5. V okně Vlastnosti nastavte následující hodnoty ovládacích prvků na návrhové ploše.

    Řízení Vlastnost Hodnota
    Label1 Text ""
    Button1 název btnReset
    Button1 Text Obnovit

Kódování uživatelského ovládacího prvku

Ovládací prvek Counter zpřístupní metodu pro zvýšení čítače, událost, která se má zvýšit při každém zvýšení čítače, tlačítko Obnovit a tři vlastnosti pro uložení aktuálního počtu, zobrazovaného textu a toho, jestli se má zobrazit nebo skrýt tlačítko Obnovit. Atribut ProvideToolboxControl určuje, kde se v sadě nástrojů zobrazí ovládací prvek Counter.

Kódování uživatelského ovládacího prvku

  1. Poklikáním na formulář otevřete obslužnou rutinu události načtení v okně kódu.

  2. Nad metodou obslužné rutiny události vytvořte ve třídě ovládacího prvku proměnnou typu integer pro uložení hodnoty čítače a proměnnou typu string pro uložení zobrazovaného textu, jak je znázorněno v následujícím příkladu.

    int currentValue;
    string displayText;
    
  3. Vytvořte následující deklarace veřejných vlastností.

    public int Value {
        get { return currentValue; }
    }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    
    

    Uživatelé mají přístup k těmto vlastnostem, aby získali a nastavili zobrazovaný text ukazatele a zobrazili nebo skryli tlačítko Obnovit. Volající můžou získat aktuální hodnotu vlastnosti Value jen pro čtení, ale nemůžou ji nastavit přímo.

  4. Do události Load ovládacího prvku vložte následující kód.

    private void Counter_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    
    

    Nastavení popisku textu v události Load umožňuje načtení cílových vlastností před jejich použitím hodnot. Nastavení Popisek v konstruktoru by vedlo k prázdnému Popisek.

  5. Vytvořte následující veřejnou metodu pro zvýšení čítače.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Přidejte deklaraci události Incremented do třídy ovládacího prvku.

    public event EventHandler Incremented;
    

    Volající můžou do této události přidávat obslužné rutiny, aby reagovali na změny v hodnotě čítače.

  7. Vraťte se do návrhového zobrazení a poklikejte na tlačítko Obnovit a vygenerujte obslužnou rutinu události btnReset_Click. Potom ho vyplňte, jak je znázorněno v následujícím příkladu.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Bezprostředně nad definicí třídy v deklaraci atributu ProvideToolboxControl změňte hodnotu prvního parametru z "MyWinFormsControl.Counter" na "General". Tím se nastaví název skupiny položek, která bude hostitelem ovládacího prvku v Panel nástrojů.

    Následující příklad ukazuje atribut ProvideToolboxControl a upravenou definici třídy.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Otestování ovládacího prvku

Pokud chcete otestovat ovládací prvek Toolbox, nejprve ho otestujte ve vývojovém prostředí a pak ho otestujte v kompilované aplikaci.

Otestování ovládacího prvku

  1. Stiskněte kombinaci kláves F5pro spuštění ladění.

    Tento příkaz sestaví projekt a otevře druhou experimentální instanci sady Visual Studio, která má nainstalovaný ovládací prvek.

  2. V experimentální instanci sady Visual Studio vytvořte projekt aplikace Windows Forms.

  3. V Průzkumníku řešenídvojím kliknutím na Form1.cs je otevřete v návrháři, pokud ještě nejsou otevřené.

  4. V panelu nástrojůby se měl ovládací prvek Counter zobrazit v části Obecné.

  5. Přetáhněte ovládací prvek Counter do formuláře a vyberte ho. Vlastnosti Value, Messagea ShowReset se zobrazí v okně Vlastnosti spolu s vlastnostmi zděděnými z UserControl.

  6. Nastavte vlastnost Message na Count:.

  7. Přetáhněte ovládací prvek Button do formuláře a potom nastavte vlastnosti názvu a textu tlačítka na Test.

  8. Poklikáním na tlačítko otevřete Form1.cs v zobrazení kódu a vytvořte obslužnou rutinu kliknutí.

  9. V obslužné rutině kliknutí zavolejte counter1.Increment().

  10. Ve funkci konstruktoru za voláním InitializeComponentzadejte counter1``.``Incremented += a stiskněte Tab dvakrát.

    Visual Studio vygeneruje obslužnou rutinu na úrovni formuláře pro událost counter1.Incremented.

  11. Zvýrazněte příkaz Throw v obslužné rutině události, zadejte mboxa poté stiskněte dvakrát klávesu Tab () pro vygenerování okna se zprávou z kódu mbox.

  12. Na další řádek přidejte následující blok if/else, který nastaví viditelnost tlačítka Obnovit.

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. Stiskněte F5.

    Otevře se formulář. Ovládací prvek Counter zobrazí následující text.

    počet : 0

  14. Vyberte test.

    Čítač se inkrementuje a Visual Studio zobrazí dialogové okno.

  15. Zavřete okno zprávy.

    Tlačítko Obnovit zmizí.

  16. Vyberte Test, dokud čítač nedosáhne 5, a pokaždé zavřete okna s oznámením.

    Znovu se zobrazí tlačítko Obnovit.

  17. Vyberte Obnovit.

    Čítač se resetuje na 0.

Další kroky

Když sestavíte ovládací prvek Toolbox, Visual Studio vytvoří soubor s názvem ProjectName.vsix ve složce \bin\debug\ projektu. Ovládací prvek můžete nasadit tak, že nahrajete soubor .vsix do sítě nebo na web. Když uživatel otevře soubor .vsix, ovládací prvek se nainstaluje a přidá do sady nástrojů Visual Studio Toolbox na počítači uživatele. Případně můžete nahrát soubor .vsix do Visual Studio Marketplace, aby ho uživatelé mohli najít v dialogovém okně Tools>Extensions and Updates.