VS 2010 - Fehler beim öffnen Benutzer-Steuerelement / Formular-Designer
C#, VS2010, WinForm-Anwendung:
Manchmal habe ich das problem, dass ich eine Fehlermeldung beim öffnen einiger meiner Steuerelemente /Formulare. Der gesamte code kompiliert und die Applikation läuft ordnungsgemäß. Öffnen Sie das Steuerelement im designer gibt mir:
Designer loader nicht eine root-Komponente hat aber nicht angegeben, warum.
Aus meiner Erfahrung kann ich sagen, es ist in der Regel etwas in meinem code nicht richtig initialisiert, z.B. eine Eigenschaft nicht festgelegt ist, was irgendwie zur Laufzeit verfügbar, aber nicht beim öffnen mit dem designer. Das einzige Problem ist, daß die eigentliche Ursache ist schwer zu finden.
Q: gibt es eine Möglichkeit irgendwie den debugger verwenden, wenn der designer öffnet meine Komponente in Visual Studio 2010? Das würde eine Menge helfen, und das problem anzugehen ist wahrscheinlich eine Sache von Minuten, dann.
Bemerkung: Nur um das klar zu machen, ich weiß, wie man den debugger benutzen ;-), ich habe nur keine Ahnung, wie ich könnte sagen, VS2010-designer zu öffnen, meine Steuerung im Debug-Modus.
Ab 2. SEP 2010 Hinzugefügt:
Vielen Dank für Ihre Hilfe. Im Grunde ist es die MSDN Library-Artikel, der beschreibt, wie es zu tun.
- Ich habe es geschafft, um es einzurichten und führen Sie die zweite Instanz
(gab es nicht viel zu verstehen, wie es zu tun). - Es nur nicht in meinem Fall, weil der 2. VS2010 Instanz (debugging Design-Zeit) nicht finden die
Symbole für meine eigene Kontrolle. Ich habe die Symbole manuell unter Debuggen /Symbole. Keine
Ergebnis, noch "Haltepunkt nicht getroffen werden, weil fehlende Symbole"
BTW, mit diesem Ansatz ist es hilfreich, bestimmte Dinge aus dem symbol laden (über Module-Fenster), denn dies wird sicher eine Menge Zeit.
Nun, wenn haben, um herauszufinden, wie man die Symbole aufgelöst und dann kann ich mit der Frage befassen.....
InformationsquelleAutor Horst Walter | 2010-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die überwiegende Mehrheit der design-Zeit-Probleme mit benutzerdefinierten Steuerelemente, die verursacht werden durch den code in den event-Handler oder in Methode überschreibt in Ihrem control zur design-Zeit als auch zur Laufzeit. Das ist in der Regel wünschenswert ist, Sie erhalten sofort eine Rückmeldung, wenn Sie eine Eigenschaft ändern Sie im Fenster Eigenschaften zum Beispiel.
Aber nicht wünschenswert, wenn der code hängt sich auf etwas zur Laufzeit, aber nicht die design-Zeit. Wie eine dbase-Verbindung oder einer Datei, gespeichert im Ordner. Generieren kann Ausnahmen und Visual Studio ist nicht sehr robust gegen die Behandlung von Ausnahmen zur design-Zeit. Schlimmsten Fall, können Sie crash VS auf den desktop ohne jegliche Diagnose. Aber alles ist möglich.
Überprüfen Sie den code in Ihre Kontrolle und stellen Sie sicher, dass die bits von code, sollte nur zur Laufzeit verpackt sind wie diese:
Harten Fälle diagnostiziert werden kann mit der debugging-Tipps in diesem MSDN Library-Artikel.
Ich würde natürlich tun dies anders herum.
Löst in den meisten Fällen, einige bleiben.
Im Falle von WPF-Steuerelementen, die Sie verwenden können
if (DesignerProperties.GetIsInDesignMode(TextBox))
InformationsquelleAutor Hans Passant
Debuggen-Steuerelement im design-Modus müssen Sie zwei Instanzen von Visual Studio. In der ersten Instanz, öffnen Sie das Projekt, das diese Steuerung enthält source-code. In den Projekt-Eigenschaften, Debugger, set-Befehl Linie, die Anrufe einer anderen Instanz Visual Studio (msdev? weiß nicht genau, für VS2010 - nehmen Sie aus dem Kontextmenü), Dann ausführen", "Debuggen Starten" - Befehl. Eine andere Visual Studio-Instanz gestartet wird. In diesem Fall öffnen Sie client-Projekt, dem Sie dieses Steuerelement auf dem Formular.
InformationsquelleAutor Alex F