Handleiding: Aangepaste Windows Forms Controls debuggen tijdens ontwerptijd
Wanneer u een aangepast besturingselement maakt, is het vaak nodig om fouten op te sporen in het gedrag tijdens de ontwerpfase. Dit geldt met name als u een aangepaste ontwerpfunctie voor uw aangepaste besturingselement ontwerpt. Zie Walkthrough voor meer informatie: Een Besturingselement voor Windows Forms maken dat gebruikmaakt van De functies van Visual Studio Design-Time.
U kunt uw aangepaste besturingselementen debuggen met behulp van Visual Studio, net zoals u andere .NET Framework-klassen zou debuggen. Het verschil is dat u fouten opspoort in een afzonderlijk exemplaar van Visual Studio waarin de code van uw aangepaste besturingselement wordt uitgevoerd.
Belangrijk
Dit artikel is voornamelijk bedoeld voor de klassieke In-Process Designer voor Windows Forms met .NET Framework. De procedures zijn mogelijk niet rechtstreeks van toepassing of volledig compatibel met projecten die gericht zijn op .NET (niet .NET Framework).
Voor .NET Framework-projecten worden alleen projecten die kunnen worden gecompileerd met de doelinstellingen van het platform Elk of x64 volledig ondersteund in de Designer. Projecten die gebruikmaken van ActiveX, COM of andere 32-bits onderdelen, kunnen compatibiliteitsproblemen hebben. De Out-Of_Process Framework Designer, momenteel als preview-versie beschikbaar, lost veel van deze compatibiliteitsproblemen op. De functionaliteit tijdens het ontwerpen werkt echter mogelijk niet zo goed als de 64-bits In-Process Designer. Om de Out-Of-Process Framework Designer in te schakelen, gaat u naar de Tools>Options>Environment>Preview-functies.
Voor meer informatie over de wijzigingen in de ontwerpfunctie sinds .NET Framework, zie
Het project maken
De eerste stap is het maken van het toepassingsproject. U gebruikt dit project om de toepassing te bouwen die gebruik maakt van het aangepaste bedieningselement.
Maak in Visual Studio een Windows-toepassingsproject en noem het DebuggingExample.
Maak het project voor een bibliotheek met besturingselementen
Voeg een Windows Control Library-project toe aan de oplossing.
Voeg een nieuw UserControl-item toe aan het project DebugControlLibrary. Geef de naam DebugControl.
Verwijder in Solution Explorerhet standaardbeheer van het project door het codebestand te verwijderen met een basisnaam van UserControl1.
Bouw de oplossing.
Doorlaatpost
Op dit punt kunt u uw aangepaste controle zien in de Werkset.
Als u de voortgang wilt controleren, zoekt u het nieuwe tabblad met de naam DebugControlLibrary Components en klikt u erop om het te selecteren. Wanneer het wordt geopend, ziet u dat uw besturingselement wordt vermeld als DebugControl met het standaardpictogram ernaast.
Voeg een eigenschap toe aan uw aangepaste controle-element
Om te laten zien dat de code van uw aangepaste besturingselement tijdens het ontwerpen wordt uitgevoerd, voegt u een eigenschap toe en stelt u een onderbrekingspunt in in de code waarmee de eigenschap wordt geïmplementeerd.
Open DebugControl in de Code Editor. Voeg de volgende code toe aan de klassedefinitie:
Private demoStringValue As String = Nothing <BrowsableAttribute(true)> Public Property DemoString() As String Get Return Me.demoStringValue End Get Set(ByVal value As String) Me.demoStringValue = value End Set End Property
private string demoStringValue = null; [Browsable(true)] public string DemoString { get { return this.demoStringValue; } set { demoStringValue = value; } }
Bouw de oplossing.
Uw aangepaste besturingselement toevoegen aan het hostformulier
Als u fouten wilt opsporen in het ontwerptijdgedrag van uw aangepaste besturingselement, plaatst u een exemplaar van de aangepaste besturingselementklasse op een hostformulier.
Open Form1 in het project "DebuggingExample" in de Windows Forms Designer.
Open in de Toolboxhet tabblad DebugControlLibrary Components en sleep een Exemplaar van Foutopsporingsbesturingselement naar het formulier.
Zoek de aangepaste eigenschap
DemoString
in het venster Eigenschappen. Houd er rekening mee dat u de waarde ervan kunt wijzigen zoals elke andere eigenschap. Houd er ook rekening mee dat wanneer de eigenschapDemoString
is geselecteerd, de beschrijvingstekenreeks van de eigenschap onder in het venster Eigenschappen wordt weergegeven.
Het project instellen voor foutopsporing in ontwerptijd
Als u fouten wilt opsporen in het ontwerptijdgedrag van uw aangepaste besturingselement, gaat u fouten opsporen in een afzonderlijk exemplaar van Visual Studio waarop de code van uw aangepaste besturingselement wordt uitgevoerd.
Klik met de rechtermuisknop op het project DebugControlLibrary in de Solution Explorer- en selecteer Eigenschappen.
Selecteer in het eigenschappenvenster DebugControlLibrary het tabblad Foutopsporing.
In de sectie Actie starten, selecteer Extern programma starten. U gaat een afzonderlijk exemplaar van Visual Studio debuggen. Klik op het beletselteken (
) om door de Visual Studio IDE te bladeren. De naam van het uitvoerbare bestand is devenv.exeen als u op de standaardlocatie hebt geïnstalleerd, is het pad %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<-editie>\Common7\IDE.
Selecteer OK- om het dialoogvenster te sluiten.
Klik met de rechtermuisknop op de DebugControlLibrary project en selecteer Instellen als opstartproject om deze foutopsporingsconfiguratie in te schakelen.
Fouten opsporen in uw aangepaste besturingselement tijdens het ontwerp
U bent nu klaar om fouten in uw aangepaste besturingselement op te sporen terwijl dit wordt uitgevoerd in de ontwerpmodus. Wanneer u de foutopsporingssessie start, wordt er een nieuw exemplaar van Visual Studio gemaakt en gebruikt u deze om de oplossing DebuggingExample te laden. Wanneer u Form1 opent in de Forms Designer-, wordt er een exemplaar van uw aangepaste besturingselement gemaakt en wordt het uitgevoerd.
Open het bronbestand DebugControl in de Code-editor en plaats een onderbrekingspunt op de
Set
accessor van de eigenschapDemoString
.Druk op F5- om de foutopsporingssessie te starten. Er wordt een nieuw exemplaar van Visual Studio gemaakt. U kunt op twee manieren onderscheid maken tussen de exemplaren:
Het foutopsporingsexemplaar bevat het woord Running in de titelbalk
Het foutopsporingsexemplaar heeft de knop Start op de werkbalk Foutopsporing uitgeschakeld.
Uw breakpoint is ingesteld in de debugging instantie.
Open in het nieuwe exemplaar van Visual Studio de oplossing DebuggingExample. U kunt de oplossing eenvoudig vinden door recente projecten te selecteren in het menu Bestand. Het oplossingsbestand DebuggingExample.sln wordt vermeld als het meest recent gebruikte bestand.
Belangrijk
Als u fouten opspoort in een .NET 6- of hoger Windows Forms-project, laadt u het project niet. Gebruik in plaats daarvan dit exemplaar van Visual Studio om een foutopsporingsprogramma toe te voegen aan het DesignToolsServer.exe proces. Selecteer het menu-item Debug>Koppel aan proces. Zoek DesignToolsServer.exe in de lijst met processen en druk op bijvoegen. Voor meer informatie, zie de wijzigingen in de ontwerper sinds .NET Framework.
Open Form1 in de Forms Designer- en selecteer het besturingselement DebugControl.
Wijzig de waarde van de eigenschap
DemoString
. Wanneer u de wijziging bevestigt, krijgt de foutopsporingssessie van Visual Studio de focus en stopt de uitvoering bij uw onderbrekingspunt. U kunt de eigenschapstoegangsfunctie stap voor stap doorlopen, net zoals u zou doen bij elke andere code.Als u de foutopsporing wilt stoppen, sluit u het gehoste exemplaar van Visual Studio af of selecteert u de knop Foutopsporing stoppen in het foutopsporingsexemplaren.
Volgende stappen
Nu u tijdens het ontwerpen fouten in uw aangepaste besturingselementen kunt opsporen, zijn er veel mogelijkheden voor het uitbreiden van de interactie van uw besturingselement met de Visual Studio IDE.
U kunt de eigenschap DesignMode van de Component-klasse gebruiken om code te schrijven die alleen tijdens het ontwerp wordt uitgevoerd. Zie DesignModevoor meer informatie.
Er zijn verschillende kenmerken die u kunt toepassen op de eigenschappen van uw besturingselement om de interactie van uw aangepaste besturingselement met de ontwerpfunctie te bewerken. U vindt deze kenmerken in de System.ComponentModel naamruimte.
U kunt een aangepaste ontwerper schrijven voor uw aangepaste besturingselement. Dit geeft u volledige controle over de ontwerpervaring met behulp van de uitbreidbare ontwerpinfrastructuur die door Visual Studio wordt weergegeven. Zie Walkthrough voor meer informatie: Een Besturingselement voor Windows Forms maken dat gebruikmaakt van De functies van Visual Studio Design-Time.
Zie ook
.NET Desktop feedback