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
Vytvořte projekt VSIX s názvem
MyWinFormsControl
. Šablonu projektu VSIX najdete v dialogovém okně Nový projekt tak, že vyhledáte "vsix".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ů.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í
V Průzkumník řešení poklikáním otevřete Counter.cs v návrháři.
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.
Z panelu nástrojů přetáhněte
Label
ovládací prvek a podButton
ním ovládací prvek na návrhovou plochu.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ů.
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
Poklikáním na formulář otevřete obslužnou rutinu události načtení v okně kódu.
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;
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.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.
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); }
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.
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; }
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
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.
V experimentální instanci sady Visual Studio vytvořte projekt aplikace model Windows Forms.
V Průzkumník řešení poklikáním Form1.cs ho otevřete v návrháři, pokud ještě není otevřený.
V sadě nástrojů
Counter
by měl být ovládací prvek zobrazen v části Obecné.Counter
Přetáhněte ovládací prvek do formuláře a vyberte ho. VlastnostValue
,Message
aShowReset
vlastnosti budou zobrazeny v okně Vlastnosti spolu s vlastnostmi, které jsou zděděny z UserControl.Nastavte vlastnost
Message
naCount:
.Button Přetáhněte ovládací prvek do formuláře a potom nastavte název a vlastnosti textu tlačítka na
Test
.Poklikáním na tlačítko otevřete Form1.cs v zobrazení kódu a vytvořte obslužnou rutinu kliknutí.
V obslužné rutině kliknutí zavolejte
counter1.Increment()
.Ve funkci konstruktoru za voláním
InitializeComponent
zadejtecounter1``.``Incremented +=
a stiskněte dvakrát klávesu Tab .Visual Studio vygeneruje obslužnou rutinu
counter1.Incremented
na úrovni formuláře pro událost.Throw
Zvýrazněte příkaz v obslužné rutině události, zadejtembox
a potom dvakrát stiskněte klávesu Tab a vygenerujte okno zprávy z fragmentu kódu mbox.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;
Stiskněte klávesu F5.
Otevře se formulář. Ovládací
Counter
prvek zobrazí následující text.Počet: 0
Vyberte Test.
Čítač se zvýší a Sada Visual Studio zobrazí okno se zprávou.
Zavřete okno zprávy.
Tlačítko Obnovit zmizí.
Vyberte Testovat , dokud čítač pokaždé nedosáhne 5 zavření polí zpráv.
Znovu se zobrazí tlačítko Obnovit .
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ů>.