Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 ButtonValue
weergegeven.
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
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 naamValueButton
bieden, kunt u uwValueButton
onderdeel opgeven met behulp vanValueButtonLib.ValueButton
. Zie naamruimtenvoor meer informatie.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-element
UserControl1
wilt wijzigen.Klik in Solution Explorermet de rechtermuisknop op ValueButton.cs en selecteer Code weergeven.
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.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.
Zoek de methode
InitializeComponent
en verwijder de regel die de eigenschap AutoScaleMode toewijst. Deze eigenschap bestaat niet in het besturingselement Button.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
Klik in Solution Explorermet de rechtermuisknop op ValueButton.csen klik vervolgens op Code weergeven in het snelmenu.
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 instructieget
wordt de waarde ingesteld die wordt geretourneerd naar de waarde die is opgeslagen in de privévariabelevarValue
en stelt deset
-instructie de waarde van de privévariabele in op basis van hetvalue
trefwoord.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
Wijs in het menu Bestand met de muis naar Toevoegen en klik vervolgens op Nieuw project om het dialoogvenster Nieuw project toevoegen te openen.
Selecteer het knooppunt Windows, onder het knooppunt Visual C# en klik op Windows Forms-toepassing.
Voer in het vak NaamTestin.
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.
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.
Klik in Solution Explorer met de rechtermuisknop op Test en selecteer Build.
Uw controle toevoegen aan het formulier
Klik in Solution Explorermet de rechtermuisknop op Form1.cs en kies Weergaveontwerper in het snelmenu.
Selecteer ValueButtonLib Componentsin de Toolbox. Dubbelklik op ValueButton.
Er verschijnt een ValueButton- op het formulier.
Klik met de rechtermuisknop op de ValueButton- en selecteer Eigenschappen in het snelmenu.
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.
Stel de eigenschap ButtonValue in op 5.
Dubbelklik op het tabblad Alle Windows Forms van de Toolboxop Label om een Label besturingselement aan het formulier toe te voegen.
Verplaats het label naar het midden van het formulier.
Dubbelklik op
valueButton1
.De Code-editor wordt geopend voor de
valueButton1_Click
gebeurtenis.Voeg de volgende regel code in.
label1.Text = valueButton1.ButtonValue.ToString();
Klik in Solution Explorermet de rechtermuisknop op Testen kies Instellen als opstartproject in het snelmenu.
In het Foutopsporing menu, selecteer Foutopsporing starten.
Form1
wordt weergegeven.Klik op
valueButton1
.Het getal '5' wordt weergegeven in
label1
, waarmee wordt aangegeven dat de eigenschapButtonValue
van uw overgenomen besturingselement is doorgegeven aanlabel1
via de methodevalueButton1_Click
. UwValueButton
-besturingselement neemt dus alle functionaliteit van de Windows Forms-standaardknop over, maar biedt een extra, aangepaste eigenschap.
Zie ook
.NET Desktop feedback