Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, finden Sie häufig die Notwendigkeit, das Entwurfszeitverhalten zu debuggen. Dies gilt insbesondere, wenn Sie einen benutzerdefinierten Designer für Ihr benutzerdefiniertes Steuerelement erstellen. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das Visual Studio-Entwurfszeitfunktionen nutzt.
Sie können Ihre benutzerdefinierten Steuerelemente mithilfe von Visual Studio debuggen, genau wie alle anderen .NET Framework-Klassen. Der Unterschied besteht darin, dass Sie eine separate Instanz von Visual Studio debuggen, die den Code des benutzerdefinierten Steuerelements ausführt.
Von Bedeutung
Dieser Artikel ist in erster Linie für den klassischen In-Process Designer für Windows Forms mit .NET Framework vorgesehen. Die Verfahren sind möglicherweise nicht direkt anwendbar oder vollständig kompatibel mit Projekten, die auf .NET (nicht .NET Framework) abzielen.
Bei .NET Framework-Projekten werden nur Projekte, die mit den Plattformzieleinstellungen Any oder x64 kompiliert werden können, im Designer vollständig unterstützt. Projekte, die ActiveX, COM oder andere 32-Bit-Komponenten verwenden, können Kompatibilitätsprobleme haben. Der Out-Of_Process Framework-Designer, derzeit in der Vorschau, behebt viele dieser Kompatibilitätsprobleme. Entwurfszeitfunktionen funktionieren jedoch möglicherweise nicht so gut wie der 64-Bit-In-Process-Designer. Um den Out-of-Process Framework-Designer zu aktivieren, navigieren Sie zu Extras>Optionen>Umgebung>Previewfunktionen.
Weitere Informationen zum Out-Of-Process-Designer finden Sie unter Die Designeränderungen seit .NET Framework.
Erstelle das Projekt
Der erste Schritt besteht darin, das Anwendungsprojekt zu erstellen. Sie verwenden dieses Projekt, um die Anwendung zu erstellen, die das benutzerdefinierte Steuerelement hosten soll.
Erstellen Sie in Visual Studio ein Windows-Anwendungsprojekt, und nennen Sie es DebuggingExample.
Erstellen des Projekts für die Steuerelementbibliothek
Fügen Sie ein Windows-Steuerelementbibliothek-Projekt zur Lösung hinzu.
Fügen Sie dem DebugControlLibrary-Projekt ein neues UserControl Element hinzu. Nennen Sie es DebugControl.
Löschen Sie im Projektmappen-Explorer das Standardsteuerelement des Projekts, indem Sie die Codedatei mit einem Basisnamen von UserControl1 löschen.
Erstellen Sie die Lösung.
Kontrollpunkt
An diesem Punkt können Sie Ihr benutzerdefiniertes Steuerelement in der Toolbox sehen.
Um den Fortschritt zu überprüfen, suchen Sie die neue Registerkarte DebugControlLibrary-Komponenten und klicken Sie darauf, um sie auszuwählen. Wenn es geöffnet wird, wird Ihr Steuerelement als DebugControl mit dem Standardsymbol neben ihm aufgeführt.
Fügen Sie eine Eigenschaft zu Ihrem benutzerdefinierten Steuerelement hinzu
Um zu veranschaulichen, dass der Code des benutzerdefinierten Steuerelements zur Entwurfszeit ausgeführt wird, fügen Sie eine Eigenschaft hinzu und legen einen Breakpoint im Code fest, der die Eigenschaft implementiert.
Öffnen Sie DebugControl im Code-Editor. Fügen Sie der Klassendefinition den folgenden Code hinzu:
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; } }
Erstellen Sie die Lösung.
Hinzufügen Ihres benutzerdefinierten Steuerelements zum Hostformular
Um das Entwurfszeitverhalten Ihres benutzerdefinierten Steuerelements zu debuggen, platzieren Sie eine Instanz der benutzerdefinierten Steuerelementklasse in einem Host-Formular.
Öffnen Sie im Projekt "DebuggingExample" Formular 1 im Windows Forms Designer.
Öffnen Sie in der Toolbox die Registerkarte DebugControlLibrary-Komponenten und ziehen Sie eine DebugControl-Instanz auf das Formular.
Suchen Sie die benutzerdefinierten
DemoString
-Eigenschaften im Fenster Eigenschaften. Beachten Sie, dass Sie ihren Wert wie jede andere Eigenschaft ändern können. Beachten Sie außerdem, dass beim Auswählen derDemoString
-Eigenschaft die Beschreibungszeichenfolge der Eigenschaft unten im Fenster Eigenschaften angezeigt wird.
Einrichten des Projekts für das Entwurfszeitdebuggen
Um das Entwurfszeitverhalten Ihres benutzerdefinierten Steuerelements zu debuggen, debuggen Sie eine separate Instanz von Visual Studio, die den Code Ihres benutzerdefinierten Steuerelements ausführt.
Klicken Sie auf das DebugControlLibrary-Projekt im Projektmappen-Explorer aus und wählen Sie Eigenschaften.
Wählen Sie im Eigenschaftenblatt DebugControlLibrary die Registerkarte Debuggen aus.
Wählen Sie im Abschnitt Startaktion die Option Externes Programm starten aus. Sie debuggen eine separate Instanz von Visual Studio, also klicken Sie auf die Schaltfläche mit Auslassungspunkten (
), um nach der Visual Studio-IDE zu suchen. Der Name der ausführbaren Datei ist devenv.exe und wenn Sie den Standardspeicherort installiert haben, ist sein Pfad %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE.
Wählen Sie OK aus, um das Dialogfeld zu schließen.
Klicken Sie mit der rechten Maustaste auf das DebugControlLibrary Projekt, und wählen Sie Als Startprojekt festlegen aus, um diese Debugkonfiguration zu aktivieren.
Debuggen des benutzerdefinierten Steuerelements zur Entwurfszeit
Jetzt sind Sie bereit, Ihr benutzerdefiniertes Steuerelement zu debuggen, da es im Entwurfsmodus ausgeführt wird. Wenn Sie die Debug-Sitzung starten, wird eine neue Instanz von Visual Studio erstellt und Sie verwenden es, um die Lösung „DebuggingExample" zu laden. Wenn Sie Formular1 im Formular-Designer öffnen, wird eine Instanz Ihres benutzerdefinierten Steuerelements erstellt und gestartet.
Öffnen Sie die DebugControl-Quelldatei im Code-Editor und legen Sie einen Breakpoint auf dem
Set
-Accessor derDemoString
-Eigenschaft fest.Drücken Sie F5-, um die Debugsitzung zu starten. Es wird eine neue Instanz von Visual Studio erstellt. Sie können zwischen den Instanzen auf zwei Arten unterscheiden:
Die Debug-Instanz verfügt über das Wort Ausführen in der Titelleiste
Die Debug-Instanz hat die Schaltfläche Start auf der Symbolleiste Debuggen deaktiviert
Ihr Breakpoint wird in der Debug-Instanz festgelegt.
Öffnen Sie in der neuen Visual Studio-Instanz die Lösung "DebuggingExample". Sie können die Projektmappe ganz einfach finden, indem Sie im Menü Datei die Option Zuletzt verwendete Projekte auswählen. Die Lösungsdatei "DebuggingExample.sln" wird als zuletzt verwendete Datei aufgeführt.
Von Bedeutung
Wenn Sie ein .NET 6- oder höher-Windows Forms-Projekt debuggen, laden Sie das Projekt nicht, sondern verwenden Sie diese Instanz von Visual Studio, um einen Debugger an den DesignToolsServer.exe Prozess anzufügen. Wählen Sie das Menüelement Debuggen>An Prozess anhängen aus. Suchen Sie DesignToolsServer.exe in der Liste der Prozesse und drücken Sie Anfügen. Weitere Informationen finden Sie unter Der Designer ändert sich seit .NET Framework.
Öffnen Sie das Formular1 im Formular-Designer und wählen Sie das DebugControl-Steuerelement aus.
Ändern Sie den Wert der
DemoString
-Eigenschaft. Wenn Sie die Änderung übernehmen, erhält die Debug-Instanz von Visual Studio den Fokus und die Ausführung an Ihrem Breakpoint. Sie können den Eigenschaftszugriff genau so wie jeden anderen Code durchlaufen.Um das Debuggen zu beenden, beenden Sie die gehostete Instanz von Visual Studio, oder wählen Sie die Schaltfläche Debuggen beenden in der Debuginstanz aus.
Nächste Schritte
Nachdem Sie Ihre benutzerdefinierten Steuerelemente im Entwurfsmodus debuggen können, gibt es viele Möglichkeiten, die Interaktion Ihrer Steuerelemente mit der Visual Studio-IDE zu erweitern.
Sie können die DesignMode-Eigenschaft der Component-Klasse verwenden, um Code zu schreiben, der nur zur Entwurfszeit ausgeführt wird. Weitere Informationen finden Sie unter DesignMode.
Es gibt mehrere Attribute, die Sie auf die Eigenschaften Ihres Steuerelements anwenden können, um die Interaktion des benutzerdefinierten Steuerelements mit dem Designer zu beeinflussen. Sie finden diese Attribute im System.ComponentModel Namespace.
Sie können einen benutzerdefinierten Designer für Ihr benutzerdefiniertes Steuerelement schreiben. Dadurch erhalten Sie vollständige Kontrolle über die Entwurfsoberfläche mithilfe der erweiterbaren Designerinfrastruktur, die von Visual Studio verfügbar gemacht wird. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das Visual Studio-Entwurfszeitfunktionen nutzt.
Siehe auch
.NET Desktop feedback