Sdílet prostřednictvím


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

Šablona položky ovládacího prvku sady nástrojů model Windows Forms, která je součástí nástrojů Visual Studio Extensibility Tools (VSSDK), umožňuje vytvořit ovládací prvek panelu 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ření ovládacího prvku Panel nástrojů

Šablona ovládacího prvku model Windows Forms panelu nástrojů vytvoří nedefinovaný uživatelský ovládací prvek a poskytuje všechny funkce potřebné k přidání ovládacího prvku do panelu nástrojů.

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

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

  2. Po otevření projektu přidejte šablonu položky ovládacího prvku panelu nástrojů model Windows Forms s názvem Counter. V Průzkumník řešení klikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat>novou položku. V dialogovém okně Přidat novou položku přejděte do visual C#>Rozšiřitelnost a vyberte model Windows Forms ovládací prvek panelu nástrojů.

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

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

Ovládací Counter prvek vyžaduje dva podřízené ovládací prvky: Label zobrazení aktuálního počtu a Button 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ík řešení poklikáním otevřete Counter.cs v návrháři.

  2. Odeberte tlačítko Click Here !, které je součástí výchozího nastavení při přidání šablony položky ovládacího prvku panelu nástrojů model Windows Forms.

  3. Z panelu nástrojů přetáhněte Label ovládací prvek a pod Button ním ovládací prvek 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.

    Control Vlastnost Hodnota
    Label1 Text ""
    Button1 Název btnReset
    Button1 Text Reset

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

Ovládací Counter prvek zpřístupní metodu pro zvýšení čítače, událost, která má být vyvolána 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 zda se má zobrazit nebo skrýt tlačítko Obnovit . Atribut ProvideToolboxControl určuje, kde se v sadě nástrojů Counter ovládací prvek zobrazí.

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 celé číslo pro uložení hodnoty čítače a řetězce 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é vlastnosti.

    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; }
    }
    
    

    Volající mají přístup k těmto vlastnostem, aby získali a nastavili zobrazovaný text čítače a mohli zobrazit nebo skrýt tlačítko Obnovit . Volající mohou získat aktuální hodnotu vlastnosti jen Value pro čtení, ale nemohou tuto hodnotu nastavit přímo.

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

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

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

  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 btnReset_Click události. 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 hostovat ovládací prvek v sadě nástrojů.

    Následující příklad ukazuje ProvideToolboxControl atribut 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 Panel nástrojů , nejprve ho otestujte ve vývojovém prostředí a pak ho otestujte v kompilované aplikaci.

Otestování ovládacího prvku

  1. Stisknutím klávesy F5 spusťte 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 model Windows Forms.

  3. V Průzkumník řešení poklikáním Form1.cs ho otevřete v návrháři, pokud ještě není otevřený.

  4. V sadě nástrojůCounter by měl být ovládací prvek zobrazen v části Obecné.

  5. Counter Přetáhněte ovládací prvek do formuláře a vyberte ho. Vlastnost Value, Messagea ShowReset vlastnosti budou zobrazeny v okně Vlastnosti spolu s vlastnostmi, které jsou zděděny z UserControl.

  6. Nastavte vlastnost Message na Count:.

  7. Button Přetáhněte ovládací prvek do formuláře a potom nastavte název a vlastnosti 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 dvakrát klávesu Tab .

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

  11. Throw Zvýrazněte příkaz v obslužné rutině události, zadejte mboxa potom dvakrát stiskněte klávesu Tab a vygenerujte okno zprávy z fragmentu kódu mbox.

  12. Na další řádek přidejte následující if/else blok pro nastavení viditelnosti tlačítka Obnovit.

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

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

    Počet: 0

  14. Vyberte Test.

    Čítač se zvýší a Sada Visual Studio zobrazí okno se zprávou.

  15. Zavřete okno zprávy.

    Tlačítko Obnovit zmizí.

  16. Vyberte Testovat , dokud čítač pokaždé nedosáhne 5 zavření polí zpráv.

    Znovu se zobrazí tlačítko Obnovit .

  17. Vyberte Obnovit.

    Čítač se resetuje na 0.

Další kroky

Při sestavování ovládacího prvku Toolbox vytvoří Visual Studio soubor s názvem ProjectName.vsix ve složce \bin\debug\ projektu. Ovládací prvek můžete nasadit tak, že soubor .vsix nahrajete 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ů sady nástrojů sady Visual Studio na počítači uživatele. Případně můžete nahrát soubor .vsix na Visual Studio Marketplace, aby ho uživatelé našli procházením v dialogovém okně Rozšíření a aktualizace nástrojů>.