Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: FAQ - C++/CLI ::  HowTo: Der Klassendesigner kann nicht angezeigt werden ... keine Designbare Klasse enthalten.     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Knuddlbaer
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.12.2001
Beiträge: 5237
Beitrag Knuddlbaer Mitglied 15:21:43 30.08.2006   Titel:   HowTo: Der Klassendesigner kann nicht angezeigt werden ... keine Designbare Klasse enthalten.            Zitieren

Manchmal ist der Formdesigner der Meinung, das es keine Designbare Klasse gibt und verweigert die Form.

Gerade wenn man an der Form bzw. dem Header nichts per Hand geändert hat steht man auf dem schlauch, es gibt keinen Ansatz was denn stören könnte.

Der Hinweis das man das Projekt neu erstellen soll hilft aber nicht immer.

u.A. sind bei der Suche nach dem Problem folgende Lösungsmöglichkeiten immer wieder aufgefallen:



  • Projekt bereinigen und öffnen des Dialoges

    Das Projekt bereinigen und danach - [uohne rigendwas zu erstellen[/u] den Dialog öffnen. Das wird zwar ein weilchen dauern, aber die Abhängigkeiten schenen hierbei neu aufgelöst zu werden.

  • Neustart des Systems

    Manchmal verträgt sich irgendeine laufende Software nicht mit der IDE. Leider bekommt man das mit einfachem schliessen nicht mehr in den Griff. Nach einem neustart des Systemes hilft man hier dem Parser seinen Müll zu vergessen. Gerade wenn es mal Probleme mit der Assemblie gibt, die plötzlich von nichts mehr weiß kann es helfen.

  • Löschen von Leerzeichen
    Code:
    #pragma region Windows Form Designer generated code
    #pargma endregion

    Zwischen diesen zwei Zeilen scheint alles dem Parser zu gehören. Leider haut dieser einem öfters mal Leerzeilen rein, nicht selten sehr viele. Ab und an verschluckt er sich auch an diesen. Es könnte also auch helfen, wenn man zwischen den 2 Pargmas alle Leerzeilen entfernt.

  • Auslagern von Quellcode

    Die IDE packt alles was man macht in den Header. Abgesehen davon, das man sich hiermit bei den Abhängigkeiten der Units keinen gefallen macht (Muss man Code ändern, ändert sich der Header und alles was den Header verwendet muss neu compiliert werden, richtig ausgelagert kann man sich das oft ersparen und muss nur eine einzige Unit übersetzen), es scheint auch ein Ärgernis für den Parser zu sein. Wenn man also einfach nichts findet, lagert man den eigentlichen Code , wie es eigentlich sein sollte, in eine .cpp aus und lässt nur die Deklaration im Header. (Kann man der IDE das so beibringen das die das auch von alleine macht ?)

  • Vererbte Controls

    Wenn eigene Controls erstellt werden (abgeleitet von UserControl oder anderen Controls wie z. B. TextBox oder ProgressBar) lassen sich diese nur im Formsdesigner verwenden, wenn sie mit der Compileroption /clr:pure übersetzt werden. /clr alleine gibt böse Fehler (anonymus)

  • Man kann das Projekt in einen Pfad speichern, in dem es noch nie lag. Das Projekt muss dann mit der Hand vollständig bereinigt werden (release , debug und intellisense Dateien löschen). Danach wird es eine weile dauern da alles neu aufgebaut wird, aber man kommt an den Dialog heran.



Da ich schon lange mit diesem Problem kämpfe und immer wieder Fluche hab ich auch kräftig bei Googel nach Lösungen gesucht aber nichts gefunden. Also, wer weiß noch ein paar Kniffs ?


Zuletzt bearbeitet von Jochen Kalmbach am 07:36:42 30.09.2006, insgesamt 4-mal bearbeitet
Werbeunterbrechung
anonymus
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.11.2003
Beiträge: 634
Beitrag anonymus Mitglied 19:32:08 31.08.2006   Titel:              Zitieren

Wenn eigene Controls erstellt werden (abgeleitet von UserControl oder anderen Controls wie z. B. TextBox oder ProgressBar)
lassen sich diese nur im Formsdesigner verwenden, wenn sie mit der Compileroption
/clr:pure übersetzt werden. /clr alleine gibt böse Fehler. Zumindest bei mir.
Knuddlbaer
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.12.2001
Beiträge: 5237
Beitrag Knuddlbaer Mitglied 18:36:40 22.10.2006   Titel:              Zitieren

Nachdem sich die Dialoge garnicht mehr öffnen liesen und die Schlussfolgerung in richtung Intellisense gingen, gab ich das Problem an MS. Hier gab es folgenden Workarround der soweit auch funktioniert:

Zitat:
We finally found a workaround that allows opening the forms in the WinForms designer (still building /clr): (1) do a build, (2) close the IDE, (3) delete the DMSKV.NCB (or, all NCBs, but in this case this is the only interesting one), (4) re-open the IDE, (5) wait for NCB population to complete. To do this, go to Class View and open the top node.

You'll see a line like "36 files to parse". When that goes to zero and real data is displayed, then the parsing is complete. Unfortunately, this only works for the initial NCB file population. And in this test case, you'll need to wait several times. So, I wait until the "Updating Intellisense..." message in the status bar disappears AND the CPU usage on the machine goes to zero. To do this, start Task Manager and minimize it. It will display CPU usage as an icon in the tray, near the clock, by default in the lower-right corner. (6) Open a form. This should work. (7) Once again, wait for NCB update to complete. (8) Open another form. (9) Wait for NCB update to complete. Etc.


If at any time you don't wait completely for the NCB update to occur, and the form displays the WSOD error, the form won't open successfully again, and you'll need to delete the NCB again.


Zuletzt bearbeitet von Knuddlbaer am 18:37:48 22.10.2006, insgesamt 1-mal bearbeitet
C++ Forum :: FAQ - C++/CLI ::  HowTo: Der Klassendesigner kann nicht angezeigt werden ... keine Designbare Klasse enthalten.   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.