Skapa en Verktygslådekontroll för Windows Forms
Med objektmallen Windows Forms Toolbox Control som ingår i Visual Studio Extensibility Tools (VSSDK) kan du skapa en Toolbox- kontroll som läggs till automatiskt när tillägget installeras. Den här genomgången visar hur du använder mallen för att skapa en enkel räknare som du kan distribuera till andra användare.
Skapa verktygslådekontrollen
Mallen För verktygslådan i Windows Forms skapar en odefinierad användarkontroll och innehåller alla funktioner som krävs för att lägga till kontrollen i Toolbox-.
Skapa ett tillägg med en verktygslådestyrkontroll för Windows Forms
Skapa ett VSIX-projekt med namnet
MyWinFormsControl
. Du hittar VSIX-projektmallen i dialogrutan Nytt projekt genom att söka efter "vsix".När projektet öppnas lägger du till en Windows Forms Toolbox Control objektmall med namnet
Counter
. Högerklicka på projektnoden i Solution Exploreroch välj Lägg till>nytt objekt. I dialogrutan Lägg till nytt objekt går du till Visual C#>Utökningsbarhet och väljer Verktygslåda för Windows-formulärDetta lägger till en användarkontroll, en
ProvideToolboxControlAttribute
RegistrationAttribute för att placera kontrollen i Toolboxoch en Microsoft.VisualStudio.ToolboxControl- tillgångspost i VSIX-manifestet för distribution.
Skapa ett användargränssnitt för kontrollen
Den Counter
kontrollen kräver två underordnade kontroller: en Label för att visa det aktuella antalet och en Button för att återställa antalet till 0. Inga andra kontroller för barn krävs eftersom anroparna ökar räknaren genom programmet.
Skapa användargränssnittet
I Solution Explorerdubbelklickar du på Counter.cs för att öppna den i designern.
Ta bort Klicka här!-knappen som ingår som standardinställning när du lägger till Windows Forms Toolbox Control-objektmallen.
Dra en
Label
-kontroll från Toolboxoch sedan enButton
kontroll under den till designytan.Ändra storlek på den övergripande användarkontrollen till 150, 50 bildpunkter och ändra storlek på knappkontrollen till 50, 20 bildpunkter.
I fönstret Egenskaper anger du följande värden för kontrollerna på designytan.
Kontroll Egenskap Värde Label1
Text "" Button1
Namn btnReset Button1
Text Återställ
Koda användarkontrollen
Kontrollen Counter
exponerar en metod för att öka räknaren, en händelse som utlöses när räknaren ökas, en -knappen Återställ och tre egenskaper för att lagra det aktuella antalet, visningstexten och om knappen Återställ ska visas eller döljas. Attributet ProvideToolboxControl
avgör var i ToolboxCounter
-kontrollen visas.
Koda användarkontrollen
Dubbelklicka på formuläret för att öppna dess lasthändelsehanterare i kodfönstret.
Ovanför händelsehanterarmetoden i kontrollklassen skapar du ett heltal för att lagra räknarvärdet och en sträng för att lagra visningstexten enligt följande exempel.
int currentValue; string displayText;
Skapa följande offentliga egenskapsdeklarationer.
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; } }
Anropare kan komma åt dessa egenskaper för att hämta och ange visningstexten för räknaren och för att visa eller dölja knappen Återställ. Anropare kan hämta det aktuella värdet för den skrivskyddade
Value
egenskapen, men de kan inte ange värdet direkt.Placera följande kod i händelsen
Load
för kontrollen.private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }
Genom att ange texten för etiketten i händelsen Load möjliggör du att målegenskaperna laddas innan deras värden tillämpas. Att ställa in texten för Etikett i konstruktorn skulle resultera i en tom Etikett.
Skapa följande offentliga metod för att öka räknaren.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
Lägg till en deklaration för händelsen
Incremented
i kontrollklassen.public event EventHandler Incremented;
Anropare kan lägga till hanterare i den här händelsen för att svara på ändringar i värdet för räknaren.
Gå tillbaka till designvyn och dubbelklicka på knappen Återställ för att generera
btnReset_Click
händelsehanteraren. Fyll sedan i det som visas i följande exempel.private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }
Omedelbart ovanför klassdefinitionen ändrar du värdet för den första parametern från
"MyWinFormsControl.Counter"
till"General"
iProvideToolboxControl
-attributdeklarationen. Detta anger namnet på den objektgrupp som ska vara värd för kontrollen i Toolbox-.I följande exempel visas attributet
ProvideToolboxControl
och den justerade klassdefinitionen.[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
Testa kontrollen
Testa en Toolbox- kontroll genom att först testa den i utvecklingsmiljön och sedan testa den i ett kompilerat program.
Testa kontrollen
Tryck på F5 för att Starta felsökning.
Det här kommandot skapar projektet och öppnar en andra experimentell instans av Visual Studio som har kontrollen installerad.
I den experimentella instansen av Visual Studio skapar du ett Windows Forms-applikationsprojekt .
I Solution Explorerdubbelklickar du på Form1.cs för att öppna den i designern om den inte redan är öppen.
I Toolboxska kontrollen
Counter
visas i avsnittet Allmänt.Dra en
Counter
kontroll till formuläret och välj den. EgenskapernaValue
,Message
ochShowReset
visas i fönstret Egenskaper tillsammans med de egenskaper som ärvs från UserControl.Ange egenskapen
Message
tillCount:
.Dra en Button kontroll till formuläret och ange sedan knappens namn och textegenskaper till
Test
.Dubbelklicka på knappen för att öppna Form1.cs i kodvyn och skapa en klickhanterare.
I klickhanteraren anropar du
counter1.Increment()
.Skriv
counter1``.``Incremented +=
efter anropet tillInitializeComponent
i konstruktorfunktionen och tryck sedan på Tabb två gånger.Visual Studio genererar en hanterare på formulärnivå för händelsen
counter1.Incremented
.Markera
Throw
-instruktionen i händelsehanteraren, skrivmbox
och tryck sedan på Tabb två gånger för att generera en meddelanderuta från kodfragmentet i mbox.På nästa rad lägger du till följande
if
/else
block för att ange synligheten för knappen Återställ.if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;
Tryck på F5.
Formuläret öppnas. Kontrollen
Counter
visar följande text.antal: 0
Välj Test.
Räknaren ökar och Visual Studio visar en meddelanderuta.
Stäng meddelanderutan.
Knappen Återställ försvinner.
Välj Testa tills räknaren når 5 stänger meddelanderutorna varje gång.
Knappen Återställ visas igen.
Välj Återställ.
Räknaren återställs till 0.
Nästa steg
När du skapar en Toolbox- kontroll skapar Visual Studio en fil med namnet ProjectName.vsix i mappen \bin\debug\ i projektet. Du kan distribuera kontrollen genom att ladda upp .vsix--filen till ett nätverk eller till en webbplats. När en användare öppnar filen .vsix installeras kontrollen och läggs till i Visual Studio Toolbox- på användarens dator. Du kan också ladda upp filen .vsix till Visual Studio Marketplace så att användarna kan hitta den genom att bläddra i dialogrutan Verktyg>Tillägg och uppdateringar.