Erstellen eines Windows Forms-Toolbox-Steuerelements
Mit der Windows Forms Toolbox Control-Elementvorlage, die in den Visual Studio-Erweiterbarkeitstools (VS SDK) enthalten ist, können Sie ein Toolbox-Steuerelement erstellen, das automatisch hinzugefügt wird, wenn die Erweiterung installiert wird. In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie mithilfe der Vorlage ein einfaches Zählersteuerelement erstellen, das Sie an andere Benutzer verteilen können.
Erstellen des Toolbox-Steuerelements
Die Windows Forms-Toolbox-Steuerelementvorlage erstellt ein undefiniertes Benutzersteuerelement und stellt alle Funktionen bereit, die zum Hinzufügen des Steuerelements zur Toolbox erforderlich sind.
Erstellen einer Erweiterung mit einem Windows Forms-Toolbox-Steuerelement
Erstellen Sie ein VSIX-Projekt mit dem Namen
MyWinFormsControl
. Sie finden die VSIX-Projektvorlage im Dialogfeld "Neues Projekt ", indem Sie nach "vsix" suchen.Wenn das Projekt geöffnet wird, fügen Sie eine Elementvorlage des Steuerelements der Windows Forms-Toolbox mit dem Namen hinzu
Counter
. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Hinzufügen>Neues Element aus. Wechseln Sie im Dialogfeld "Neues Element hinzufügen" zu "Visual C#>Erweiterbarkeit", und wählen Sie "Windows Forms-Toolbox-Steuerelement" aus.Dadurch wird ein Benutzersteuerelement, ein
ProvideToolboxControlAttribute
RegistrationAttribute Steuerelement zum Platzieren des Steuerelements in der Toolbox und ein Microsoft.VisualStudio.ToolboxControl Asset-Eintrag im VSIX-Manifest für die Bereitstellung hinzugefügt.
Erstellen einer Benutzeroberfläche für das Steuerelement
Das Counter
Steuerelement erfordert zwei untergeordnete Steuerelemente: a Label zum Anzeigen der aktuellen Anzahl und zum Button Zurücksetzen der Anzahl auf 0. Es sind keine anderen untergeordneten Steuerelemente erforderlich, da Aufrufer den Zähler programmgesteuert erhöhen.
So erstellen Sie die Benutzeroberfläche
Doppelklicken Sie in Projektmappen-Explorer auf Counter.cs, um sie im Designer zu öffnen.
Entfernen Sie die Schaltfläche "Hier klicken" , die standardmäßig enthalten ist, wenn Sie die Elementvorlage für die Windows Forms-Toolbox-Steuerelement hinzufügen.
Ziehen Sie aus der Toolbox ein
Label
Steuerelement und dann einButton
Steuerelement darunter auf die Entwurfsoberfläche.Ändern Sie die Größe des Benutzersteuerelements auf 150, 50 Pixel, und ändern Sie die Größe des Schaltflächensteuerelements auf 50, 20 Pixel.
Legen Sie im Eigenschaftenfenster die folgenden Werte für die Steuerelemente auf der Entwurfsoberfläche fest.
Control Eigenschaft Value Label1
Text "" Button1
Name btnReset Button1
Text Zurücksetzen
Code des Benutzersteuerelements
Das Counter
Steuerelement macht eine Methode verfügbar, um den Zähler zu erhöhen, ein Ereignis, das ausgelöst wird, wenn der Zähler erhöht wird, eine Schaltfläche "Zurücksetzen " und drei Eigenschaften zum Speichern der aktuellen Anzahl, des Anzeigetexts und ob die Schaltfläche "Zurücksetzen " ein- oder ausgeblendet werden soll. Das ProvideToolboxControl
-Attribut bestimmt, an welcher Stelle in der Toolbox das Counter
-Steuerelement angezeigt wird.
So codieren Sie das Benutzersteuerelement
Doppelklicken Sie auf das Formular, um den zugehörigen Ladeereignishandler im Codefenster zu öffnen.
Über der Ereignishandlermethode erstellen Sie in der Steuerelementklasse eine ganze Zahl, um den Zählerwert und eine Zeichenfolge zum Speichern des Anzeigetexts zu speichern, wie im folgenden Beispiel gezeigt.
int currentValue; string displayText;
Erstellen Sie die folgenden öffentlichen Eigenschaftendeklarationen.
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; } }
Aufrufer können auf diese Eigenschaften zugreifen, um den Anzeigetext des Zählers abzurufen und festzulegen und die Schaltfläche "Zurücksetzen " ein- oder auszublenden. Aufrufer können den aktuellen Wert der schreibgeschützten
Value
Eigenschaft abrufen, aber sie können den Wert nicht direkt festlegen.Platzieren Sie den folgenden Code im
Load
Ereignis für das Steuerelement.private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }
Wenn Sie den Beschriftungstext im Load Ereignis festlegen, können die Zieleigenschaften geladen werden, bevor ihre Werte angewendet werden. Das Festlegen des Beschriftungstexts im Konstruktor würde zu einer leeren Beschriftung führen.
Erstellen Sie die folgende öffentliche Methode, um den Zähler zu erhöhen.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
Fügen Sie der Steuerelementklasse eine Deklaration für das
Incremented
Ereignis hinzu.public event EventHandler Incremented;
Aufrufer können diesem Ereignis Handler hinzufügen, um auf Änderungen am Wert des Zählers zu reagieren.
Kehren Sie zur Entwurfsansicht zurück, und doppelklicken Sie auf die Schaltfläche "Zurücksetzen ", um den
btnReset_Click
Ereignishandler zu generieren. Füllen Sie es dann wie im folgenden Beispiel gezeigt aus.private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }
Ändern Sie direkt oberhalb der Klassendefinition in der
ProvideToolboxControl
-Attributdeklaration den Wert des ersten Parameters von"MyWinFormsControl.Counter"
in"General"
. Dadurch wird der Name der Elementgruppe festgelegt, die das Steuerelement in der Toolboxhostet.Das folgende Beispiel zeigt das
ProvideToolboxControl
-Attribut und die angepasste Klassendefinition.[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
Testen des Steuerelements
Um ein Toolbox-Steuerelement zu testen, testen Sie es zuerst in der Entwicklungsumgebung, und testen Sie es dann in einer kompilierten Anwendung.
So testen Sie das Steuerelement
Drücken Sie F5, um das Debuggen zu starten.
Dieser Befehl erstellt das Projekt und öffnet eine zweite experimentelle Instanz von Visual Studio, die das Steuerelement installiert hat.
Erstellen Sie in der Experimentellen Instanz von Visual Studio ein Windows Forms-Anwendungsprojekt .
Doppelklicken Sie in Projektmappen-Explorer auf "Form1.cs", um sie im Designer zu öffnen, wenn sie noch nicht geöffnet ist.
In der Toolbox sollte das
Counter
Steuerelement im Abschnitt "Allgemein " angezeigt werden.Ziehen Sie ein
Counter
Steuerelement auf Ihr Formular, und wählen Sie es aus. DieValue
EigenschaftenMessage
undShowReset
Eigenschaften werden im Eigenschaftenfenster zusammen mit den Eigenschaften angezeigt, von UserControldenen geerbt wird.Setzen Sie die
Message
-Eigenschaft aufCount:
.Ziehen Sie ein Button Steuerelement auf das Formular, und legen Sie dann den Namen und die Texteigenschaften der Schaltfläche auf
Test
.Doppelklicken Sie auf die Schaltfläche, um Form1.cs in der Codeansicht zu öffnen und einen Klickhandler zu erstellen.
Rufen Sie
counter1.Increment()
im Click-Handler auf.Geben Sie in der Konstruktorfunktion nach dem Aufruf von
InitializeComponent
" die TAB-TASTE ein, und drücken Sie dann zweimal die TAB-TASTE.counter1``.``Incremented +=
Visual Studio generiert einen Handler auf Formularebene für das
counter1.Incremented
Ereignis.Markieren Sie die
Throw
Anweisung im Ereignishandler, geben Sie einmbox
, und drücken Sie dann zweimal die TAB-TASTE, um ein Meldungsfeld aus dem Mbox-Codeausschnitt zu generieren.Fügen Sie in der nächsten Zeile den folgenden
if
/else
Block hinzu, um die Sichtbarkeit der Schaltfläche "Zurücksetzen " festzulegen.if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;
Drücken Sie F5.
Das Formular wird geöffnet. Das
Counter
Steuerelement zeigt den folgenden Text an.Anzahl: 0
Klicken Sie auf Test.
Der Leistungsindikator und Visual Studio zeigt ein Meldungsfeld an.
Schließen Sie das Meldungsfeld.
Die Schaltfläche "Zurücksetzen " wird ausgeblendet.
Wählen Sie "Testen" aus, bis der Zähler jedes Mal fünf Meldungsfelder schließt.
Die Schaltfläche "Zurücksetzen " wird wieder angezeigt.
Klicken Sie auf Zurücksetzen.
Der Zähler wird auf 0 zurückgesetzt.
Nächste Schritte
Beim Erstellen eines Toolbox -Steuerelements erstellt Visual Studio eine Datei namens Projektname.vsix im Ordner „\bin\debug\“ des Projekts. Sie können das Steuerelement bereitstellen, indem Sie die VSIX-Datei in ein Netzwerk oder auf eine Website hochladen. Wenn ein Benutzer die VSIX-Datei öffnet, wird das Steuerelement installiert und der Visual Studio-Toolbox auf dem Computer des Benutzers hinzugefügt. Alternativ können Sie die VSIX-Datei in Visual Studio Marketplace hochladen, damit Benutzer sie finden können, indem Sie im Dialogfeld "Erweiterungen und Updates" der Tools>navigieren.