Delen via


Overzicht: Overnemen van een Windows Forms-besturingselement met C#

Met C# kunt u krachtige aangepaste besturingselementen maken via overname. Via overname kunt u besturingselementen maken die alle inherente functionaliteit van standaardbesturingselementen voor Windows Forms behouden, maar ook aangepaste functionaliteit bevatten. In deze handleiding maakt u een eenvoudig overgeërfd besturingselement met de naam ValueButton. Met deze knop wordt functionaliteit overgenomen van het standaardbesturingselement Windows Forms Button en wordt een aangepaste eigenschap met de naam ButtonValueweergegeven.

Het project maken

Wanneer u een nieuw project maakt, geeft u de naam op om de hoofdnaamruimte, assemblynaam en projectnaam in te stellen en ervoor te zorgen dat het standaardonderdeel zich in de juiste naamruimte bevindt.

Om de besturingselementbibliotheek ValueButtonLib en het besturingselement ValueButton te maken

  1. Maak in Visual Studio een nieuw Windows Forms Control Library project en noem het ValueButtonLib.

    De projectnaam, ValueButtonLib, wordt standaard ook toegewezen aan de hoofdnaamruimte. De hoofdnaamruimte wordt gebruikt om de namen van onderdelen in de assembly te kwalificeren. Als twee assembly's bijvoorbeeld onderdelen met de naam ValueButtonbieden, kunt u uw ValueButton onderdeel opgeven met behulp van ValueButtonLib.ValueButton. Zie naamruimtenvoor meer informatie.

  2. Klik in Solution Explorermet de rechtermuisknop op UserControl1.csen kies Hernoemen in het snelmenu. Wijzig de bestandsnaam in ValueButton.cs. Klik op de knop Ja wanneer u wordt gevraagd of u de naam van alle verwijzingen naar het code-elementUserControl1wilt wijzigen.

  3. Klik in Solution Explorermet de rechtermuisknop op ValueButton.cs en selecteer Code weergeven.

  4. Zoek de class instructieregel, public partial class ValueButton, en wijzig het type waarvan dit besturingselement erft van UserControl naar Button. Hierdoor kan uw overgenomen besturingselement alle functionaliteit van het Button besturingselement overnemen.

  5. Open in Solution Explorerhet knooppunt ValueButton.cs om het door de ontwerper gegenereerde codebestand ValueButton.Designer.csweer te geven. Open dit bestand in de Code-editor.

  6. Zoek de methode InitializeComponent en verwijder de regel die de eigenschap AutoScaleMode toewijst. Deze eigenschap bestaat niet in het besturingselement Button.

  7. Kies in het menu BestandAlles opslaan om het project op te slaan.

    Notitie

    Een visuele ontwerper is niet meer beschikbaar. Omdat het Button besturingselement zelf voor zijn weergave zorgt, kunt u het uiterlijk ervan niet wijzigen in de ontwerpmodule. De visuele weergave zal precies hetzelfde zijn als die van de klasse waarvan het overerft (dat wil zeggen Button), tenzij gewijzigd in de code. U kunt nog steeds onderdelen toevoegen die geen UI-elementen hebben, aan het ontwerpoppervlak.

Een eigenschap toevoegen aan uw overgenomen besturingselement

Een mogelijk gebruik van overgenomen Windows Forms-besturingselementen is het maken van besturingselementen die identiek zijn in het uiterlijk van standaardbesturingselementen voor Windows Forms, maar aangepaste eigenschappen beschikbaar maken. In deze sectie voegt u een eigenschap met de naam ButtonValue toe aan uw besturingselement.

De eigenschap Waarde toevoegen

  1. Klik in Solution Explorermet de rechtermuisknop op ValueButton.csen klik vervolgens op Code weergeven in het snelmenu.

  2. Zoek de verklaring class. Typ direct na de {de volgende code:

    // Creates the private variable that will store the value of your
    // property.
    private int varValue;
    // Declares the property.
    public int ButtonValue
    {
       // Sets the method for retrieving the value of your property.
       get
       {
          return varValue;
       }
       // Sets the method for setting the value of your property.
       set
       {
          varValue = value;
       }
    }
    

    Met deze code worden de methoden ingesteld waarmee de eigenschap ButtonValue wordt opgeslagen en opgehaald. Met de instructie get wordt de waarde ingesteld die wordt geretourneerd naar de waarde die is opgeslagen in de privévariabele varValueen stelt de set-instructie de waarde van de privévariabele in op basis van het value trefwoord.

  3. Kies in het menu BestandAlles opslaan om het project op te slaan.

Het besturingselement testen

Besturingselementen zijn geen zelfstandige projecten; ze moeten worden gehost in een container. Als u uw controle wilt testen, moet u een testproject opgeven waarin het kan worden uitgevoerd. U moet uw controle ook toegankelijk maken voor het testproject door het te bouwen (compileren). In dit gedeelte bouwt u uw controle en test u deze in een Windows-formulier.

Uw besturing bouwen

Klik in het menu Build op Build Solution. De build moet slagen zonder compilerfouten of -waarschuwingen.

Een testproject maken

  1. Wijs in het menu Bestand met de muis naar Toevoegen en klik vervolgens op Nieuw project om het dialoogvenster Nieuw project toevoegen te openen.

  2. Selecteer het knooppunt Windows, onder het knooppunt Visual C# en klik op Windows Forms-toepassing.

  3. Voer in het vak NaamTestin.

  4. Klik in Solution Explorermet de rechtermuisknop op het knooppunt Verwijzingen voor uw testproject en selecteer vervolgens Verwijzing toevoegen in het snelmenu om het dialoogvenster Verwijzing toevoegen weer te geven.

  5. Klik op het tabblad Projecten. Uw ValueButtonLib-project wordt weergegeven onder Projectnaam. Dubbelklik op het project om de verwijzing naar het testproject toe te voegen.

  6. Klik in Solution Explorer met de rechtermuisknop op Test en selecteer Build.

Uw controle toevoegen aan het formulier

  1. Klik in Solution Explorermet de rechtermuisknop op Form1.cs en kies Weergaveontwerper in het snelmenu.

  2. Selecteer ValueButtonLib Componentsin de Toolbox. Dubbelklik op ValueButton.

    Er verschijnt een ValueButton- op het formulier.

  3. Klik met de rechtermuisknop op de ValueButton- en selecteer Eigenschappen in het snelmenu.

  4. Bekijk in het venster Eigenschappen de eigenschappen van dit besturingselement. Houd er rekening mee dat ze identiek zijn aan de eigenschappen die worden weergegeven door een standaardknop, behalve dat er een extra eigenschap, ButtonValue, is.

  5. Stel de eigenschap ButtonValue in op 5.

  6. Dubbelklik op het tabblad Alle Windows Forms van de Toolboxop Label om een Label besturingselement aan het formulier toe te voegen.

  7. Verplaats het label naar het midden van het formulier.

  8. Dubbelklik op valueButton1.

    De Code-editor wordt geopend voor de valueButton1_Click gebeurtenis.

  9. Voeg de volgende regel code in.

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. Klik in Solution Explorermet de rechtermuisknop op Testen kies Instellen als opstartproject in het snelmenu.

  11. In het Foutopsporing menu, selecteer Foutopsporing starten.

    Form1 wordt weergegeven.

  12. Klik op valueButton1.

    Het getal '5' wordt weergegeven in label1, waarmee wordt aangegeven dat de eigenschap ButtonValue van uw overgenomen besturingselement is doorgegeven aan label1 via de methode valueButton1_Click. Uw ValueButton-besturingselement neemt dus alle functionaliteit van de Windows Forms-standaardknop over, maar biedt een extra, aangepaste eigenschap.

Zie ook