Freigeben über


Erstellen eines Windows Forms-Toolbox-Steuerelements

Mit der in den Visual Studio Extensibility Tools (VSSDK) enthaltenen Elementvorlage für das Windows Forms-Toolbox-Steuerelement können Sie ein Toolbox-Steuerelement erstellen, das bei der Installation der Erweiterung automatisch hinzugefügt 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 der Toolbox Control

Die Windows Forms Toolbox Control-Vorlage erstellt ein nicht definiertes Benutzersteuerelement und enthält alle erforderlichen Funktionen, um das Steuerelement zur Toolbox hinzufügen.

Erstellen einer Erweiterung mit einem Windows Forms Toolbox Control

  1. Erstellen Sie ein VSIX-Anwendungsprojekt mit dem Namen MyWinFormsControl. Sie finden die VSIX-Projektvorlage im Dialogfeld Neues Projekt, indem Sie nach .vsix suchen.

  2. Wenn das Projekt geöffnet wird, fügen Sie eine Windows Forms Toolbox Control-Elementvorlage mit dem Namen Counter hinzugefügt. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Hinzufügen>Neues Element aus. Gehen Sie im Dialogfenster Neues Element hinzufügen zu Visual C#>Erweiterbarkeit und wählen Sie Windows Forms Toolbox Control

  3. 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: ein Label zum Anzeigen der aktuellen Anzahl und ein zum Button Zurücksetzen der Anzahl auf 0. Es sind keine weiteren untergeordneten Steuerelemente erforderlich, da die Anrufer den Zähler programmgesteuert erhöhen.

So erstellen Sie die Benutzeroberfläche

  1. Doppelklicken Sie im Solution Explorer auf Counter.cs, um es im Designer zu öffnen.

  2. 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.

  3. Ziehen Sie aus der Toolbox ein Label Steuerelement und dann ein Button Steuerelement darunter auf die Entwurfsoberfläche.

  4. Ändern Sie die Größe des Benutzersteuerelements auf 150, 50 Pixel, und ändern Sie die Größe des Schaltflächensteuerelements auf 50, 20 Pixel.

  5. Legen Sie im Eigenschaftenfenster die folgenden Werte für die Steuerelemente auf der Entwurfsoberfläche fest.

    Steuerelement Eigenschaft Value
    Label1 Text ""
    Button1 Name btnReset
    Button1 Text Zurücksetzen

Codieren des Benutzersteuerelements

Das Steuerelement Counter stellt eine Methode zum Erhöhen des Zählers, ein Ereignis, das bei jeder Erhöhung des Zählers ausgelöst wird, eine Schaltfläche Zurücksetzen und drei Eigenschaften zum Speichern der aktuellen Anzahl, des Anzeigetextes und zum Festlegen, ob die Schaltfläche Zurücksetzen angezeigt oder ausgeblendet werden soll, bereit. Das ProvideToolboxControl -Attribut bestimmt, an welcher Stelle in der Toolbox das Counter -Steuerelement angezeigt wird.

Codieren des Benutzersteuerelements

  1. Doppelklicken Sie auf das Formular, um den zugehörigen Ladeereignishandler im Codefenster zu öffnen.

  2. Ü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;
    
  3. 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.

  4. 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.

  5. 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);
    }
    
    
  6. 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.

  7. 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 anschließend wie im folgenden Beispiel gezeigt aus.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Ä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 dann in einer kompilierten Anwendung.

So testen Sie das Steuerelement

  1. Drücken Sie F5, um mit dem Debuggen zu beginnen.

    Dieser Befehl erstellt das Projekt und öffnet eine zweite experimentelle Instanz von Visual Studio, in der das Steuerelement installiert ist.

  2. Erstellen Sie in der experimentellen Instanz von Visual Studio ein Windows Forms Application-Projekt.

  3. Doppelklicken Sie im Solution Explorer auf Form1.cs, um die Datei im Designer zu öffnen, falls sie nicht bereits geöffnet ist.

  4. In der Toolbox sollte das Counter Steuerelement im Abschnitt Allgemein angezeigt werden.

  5. Ziehen Sie ein Counter Steuerelement auf Ihr Formular, und wählen Sie es aus. Die Value Messageund ShowReset Eigenschaften werden im Eigenschaftenfenster zusammen mit den Eigenschaften angezeigt, die von UserControl geerbt werden.

  6. Setzen Sie die Message-Eigenschaft auf Count:.

  7. Ziehen Sie ein Button Steuerelement auf das Formular, und legen Sie dann den Namen und die Texteigenschaften der Schaltfläche auf Test.

  8. Doppelklicken Sie auf die Schaltfläche, um Form1.cs in der Codeansicht zu öffnen und einen Klickhandler zu erstellen.

  9. Rufen Sie im Click-Handler counter1.Increment() auf.

  10. Geben Sie in der Konstruktorfunktion nach dem Aufruf von InitializeComponent counter1``.``Incremented += ein und drücken Sie anschließend zweimal die Tabulatortaste.

    Visual Studio generiert einen Handler auf Formularebene für das counter1.Incremented Ereignis.

  11. 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.

  12. 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;
    
  13. Drücken Sie F5.

    Das Formular öffnet sich. Das Counter Steuerelement zeigt den folgenden Text an.

    Count: 0

  14. Klicken Sie auf Test.

    Der Zähler wird heraufgesetzt und Visual Studio zeigt ein Meldungsfeld an.

  15. Schließen Sie das Nachrichtenfeld.

    Die Schaltfläche Zurücksetzen wird ausgeblendet.

  16. Wählen Sie Testen aus, bis der Zähler 5 erreicht, und schließen Sie dabei jedes Mal die Meldungsfelder.

    Die Schaltfläche Zurücksetzen wird wieder angezeigt.

  17. 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 zur Toolbox von Visual Studio hinzugefügt. Alternativ können Sie die Datei .vsix in den Visual Studio Marketplace hochladen, sodass Benutzer sie finden können, indem sie im Dialogfeld Tools>Erweiterungen und Updates suchen.