Exemplarische Vorgehensweise: Debuggen von benutzerdefinierten Windows Forms-Steuerelementen zur Entwurfszeit
Aktualisiert: November 2007
Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, ist es häufig notwendig, sein Entwurfszeitverhalten zu debuggen. Dies gilt insbesondere, wenn Sie für das benutzerdefinierte Steuerelement einen benutzerdefinierten Designer erstellen. Ausführliche Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das Visual Studio-Entwurfszeitfeatures nutzt.
Sie können benutzerdefinierte Steuerelemente mit Visual Studio ebenso wie andere .NET Framework-Klassen debuggen. Der Unterschied besteht darin, dass Sie eine separate Instanz von Visual Studio debuggen, die den Code des benutzerdefinierten Steuerelements ausführt.
Zu den Aufgaben in dieser exemplarischen Vorgehensweise gehören:
Erstellen eines Windows Forms-Projekts, um das benutzerdefinierte Steuerelement zu hosten
Erstellen eines Steuerelementbibliothek-Projekts
Hinzufügen einer Eigenschaft zum benutzerdefinierten Steuerelement
Hinzufügen des benutzerdefinierten Steuerelements zum Hostformular
Einrichten des Projekts zum Entwurfszeitdebuggen
Debuggen des benutzerdefinierten Steuerelements zur Entwurfszeit
Anschließend werden Sie die Aufgaben verstehen, die zum Debuggen des Entwurfszeitverhaltens eines benutzerdefinierten Steuerelements erforderlich sind.
Hinweis: |
---|
Je nach den aktiven Einstellungen oder der verwendeten Version können die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen abweichen. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
Erstellen des Projekts
Zunächst muss das Anwendungsprojekt erstellt werden. Mit diesem Projekt erstellen Sie die Anwendung, die das benutzerdefinierte Steuerelement hostet.
So erstellen Sie das Projekt
- Erstellen Sie ein Windows-Anwendungsprojekt mit dem Namen "DebuggingExample". Ausführliche Informationen finden Sie unter Gewusst wie: Erstellen eines Windows-Anwendungsprojekts.
Erstellen eines Steuerelementbibliothek-Projekts
Der nächste Schritt besteht darin, das Steuerelementbibliothek-Projekt zu erstellen und das benutzerdefinierte Steuerelement einzurichten.
So erstellen Sie das Steuerelementbibliothek-Projekt
Fügen Sie der Projektmappe ein Windows-Steuerelementbibliothek-Projekt hinzu. Ausführliche Informationen finden Sie unter Dialogfeld "Neues Projekt hinzufügen". Nennen Sie das Projekt "DebugControlLibrary".
Fügen Sie dem DebugControlLibrary-Projekt ein neues UserControl-Element hinzu. Ausführliche Informationen finden Sie unter Gewusst wie: Hinzufügen neuer Projektelemente. Weisen Sie der neuen Quelldatei den Basisnamen "DebugControl" zu.
Löschen Sie im Projektmappen-Explorer das standardmäßige Steuerelement des Projekts, indem Sie die Codedatei mit dem Basisnamen "UserControl1" löschen. Ausführliche Informationen finden Sie unter Gewusst wie: Entfernen, Löschen und Ausschließen von Elementen.
Erstellen Sie die Projektmappe.
Checkpoint
An diesem Punkt wird das benutzerdefinierte Steuerelement in der Toolbox aufgeführt.
So überprüfen Sie den Fortschritt
- Suchen Sie die neue Registerkarte DebugControlLibrary-Komponenten, und wählen Sie sie durch Anklicken aus. Wenn sie geöffnet wird, wird das Steuerelement als DebugControl mit einem Standardsymbol daneben aufgeführt.
Hinzufügen einer Eigenschaft zum benutzerdefinierten Steuerelement
Um zu zeigen, dass das benutzerdefinierte Steuerelement zur Entwurfszeit ausgeführt wird, fügen Sie eine Eigenschaft hinzu und legen im Code einen Haltepunkt fest, mit dem die Eigenschaft implementiert wird.
So fügen Sie dem benutzerdefinierten Steuerelement eine Eigenschaft hinzu
Ö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 Projektmappe.
Hinzufügen des benutzerdefinierten Steuerelements zum Hostformular
Um das Entwurfszeitverhalten des benutzerdefinierten Steuerelements zu debuggen, fügen Sie einem Hostformular eine Instanz der benutzerdefinierten Steuerelementklasse hinzu.
So fügen Sie dem Hostformular das benutzerdefinierte Steuerelement hinzu
Öffnen Sie im "DebuggingExample"-Projekt Form1 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 benutzerdefinierte DemoString-Eigenschaft im Eigenschaftenfenster. Beachten Sie, dass Sie ihren Wert ebenso ändern können wie den einer anderen Eigenschaft. Beachten Sie außerdem, dass bei Auswahl der DemoString-Eigenschaft die Beschreibung der Eigenschaft im unteren Bereich des Eigenschaftenfensters angezeigt wird.
Einrichten des Projekts zum Entwurfszeitdebuggen
Um das Entwurfszeitverhalten des benutzerdefinierten Steuerelements zu debuggen, müssen Sie eine separate Instanz von Visual Studio debuggen, die den Code des benutzerdefinierten Steuerelements ausführt.
So richten Sie das Projekt zum Entwurfszeitdebuggen ein
Klicken Sie mit der rechten Maustaste auf das DebugControlLibrary-Projekt im Projektmappen-Explorer, und wählen Sie Eigenschaften aus.
Wählen Sie im DebugControlLibrary-Eigenschaftenblatt die Registerkarte Debuggen aus.
Wählen Sie im Abschnitt Startaktion die Option Externes Programm starten aus. Da Sie eine separate Instanz von Visual Studio debuggen, klicken Sie auf die Schaltfläche mit den Auslassungszeichen (), um nach der Visual Studio IDE zu suchen. Der Name der ausführbaren Datei lautet devenv.exe. Bei der Installation am Standardspeicherort lautet der Pfad %programfiles%\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.
Klicken Sie auf OK, 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 ermöglichen.
Debuggen des benutzerdefinierten Steuerelements zur Entwurfszeit
Nun kann das benutzerdefinierte Steuerelement debuggt werden, während es im Entwurfsmodus ausgeführt wird. Wenn Sie die Debugsitzung starten, wird eine neue Instanz von Visual Studio erstellt, die Sie zum Laden der Projektmappe "DebuggingExample" verwenden. Wenn Sie Form1 im Windows Forms-Designer öffnen, wird eine Instanz des benutzerdefinierten Steuerelements erstellt und ausgeführt.
So debuggen Sie das benutzerdefinierte Steuerelement zur Entwurfszeit
Öffnen Sie die DebugControl-Quelldatei im Code-Editor, und fügen Sie einen Haltepunkt am Set-Accessor der DemoString-Eigenschaft ein.
Drücken Sie F5, um die Debugsitzung zu starten. Beachten Sie, dass eine neue Instanz von Visual Studio erstellt wird. Sie können die beiden Instanzen auf zwei Arten unterscheiden:
Die Debuginstanz enthält in der Titelleiste das Wort Aktiv
In der Debuginstanz ist die Schaltfläche Starten auf der Symbolleiste Debuggen deaktiviert
Der Haltepunkt ist in der Debuginstanz festgelegt.
Öffnen Sie in der neuen Instanz von Visual Studio die "DebuggingExample"-Projektmappe. Sie können die Projektmappe leicht finden, indem Sie im Menü Datei die Option Zuletzt geöffnete Projekte auswählen. Die "DebuggingExample.sln"-Projektmappendatei wird als zuletzt verwendete Datei aufgelistet.
Öffnen Sie im Windows Forms-Designer Form1, und wählen Sie das DebugControl-Steuerelement aus.
Ändern Sie den Wert der DemoString-Eigenschaft. Beachten Sie, dass beim Speichern der Änderungen die Debuginstanz von Visual Studio aktiviert und die Ausführung am Haltepunkt gestoppt wird. Sie können ebenso wie mit anderem Code den Eigenschaftenaccessor Schritt für Schritt durchlaufen.
Nach Abschluss der Debugsitzung können Sie diese beenden, indem Sie die gehostete Instanz von Visual Studio schließen oder in der Debuginstanz auf die Schaltfläche Debuggen beenden klicken.
Nächste Schritte
Nachdem Sie nun ein benutzerdefiniertes Steuerelement zur Entwurfszeit debuggen können, gibt es zahlreiche Möglichkeiten, die Interaktion des Steuerelements mit der Visual Studio IDE auszuweiten.
Sie können mithilfe der DesignMode-Eigenschaft der Component-Klasse Code schreiben, der nur zur Entwurfszeit ausgeführt wird. Ausführliche Informationen finden Sie unter DesignMode.
Es gibt zahlreiche Attribute, die Sie auf die Eigenschaften des Steuerelements anwenden können, um die Interaktion des benutzerdefinierten Steuerelements mithilfe des Designers zu bearbeiten. Diese Attribute finden Sie im System.ComponentModel-Namespace.
Sie können einen benutzerdefinierten Designer für das benutzerdefinierte Steuerelement erstellen. Dadurch erhalten Sie die vollständige Kontrolle über den Entwurfsvorgang mit der erweiterbaren Designer-Infrastruktur in Visual Studio. Ausführliche Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das Visual Studio-Entwurfszeitfeatures nutzt.
Siehe auch
Aufgaben
Gewusst wie: Zugriff auf Entwurfszeitdienste
Gewusst wie: Zugriff auf Entwurfszeitunterstützung in Windows Forms