2009-12-28 11 views
5

Ich habe ein nerviges Problem. Manchmal zeigt Visual Studio die Option "View Designer" für einige meiner Formulare im Solution Explorer nicht an. Es zeigt keine Fehler im Entwurfsmodus an, es wird lediglich die Option zur Verwendung des Designers nicht angezeigt. Ich kann keine genauen Fälle herausfinden, wenn das passiert. Hat jemand eine Vorstellung davon, was ein solches Verhalten des Lösungs-Explorers verursacht?Visual Studio Formular-Designer

+0

welche Version von VS? Wenn VS 2005, stellen Sie sicher, dass Sie den neuesten SP ausführen. –

+0

Gibt es Formulare, die Sie mithilfe der visuellen Vererbung erstellen möchten? Und was passiert, wenn Sie den Code-Editor öffnen und F7 drücken? – Rory

+0

@Rory: Du meinst Shift + F7. – SLaks

Antwort

3

Ihre Formulare erben wahrscheinlich eine benutzerdefinierte Formularklasse.

Es kann vorkommen, dass VS nicht erkennt, dass die benutzerdefinierte Klasse Form erbt. (zB wenn die Lösung nicht funktioniert).

Versuchen Sie, die Lösung neu zu erstellen.

Wenn Sie eine genauere Antwort wünschen, geben Sie bitte weitere Einzelheiten an.

+0

Ja, es scheint das Problem zu sein. Das Ändern des Basistyps in Form und dann zurück zu MyCustomDialog hilft, aber gibt es eine Möglichkeit VS zu analysieren, wenn mein Formular ein Formular ist? – ironic

+0

Was noch seltsamer ist, ist, dass sich MyCustomDialog in einer Bibliothek befindet, die während des Builds für eine sehr lange Zeit keine Fehler hatte. – ironic

+1

Versuchen Sie, die Lösung zu säubern und neu aufzubauen, sie hat das Problem immer behoben, als ich es hatte. – Rory

1

Ich hatte dieses Problem oft in VS 2003. Jedes Mal, wenn es passierte, öffnete ich die .csproj-Datei im Editor und änderte die Klasse wieder in "Form".

0

Ich hatte dieses Problem und eine Lösung gefunden. Irgendwie wurde meine .csproj Datei beschädigt und es fehlte ein Unterschlüssel im XML. Sagen Sie zum Beispiel habe ich ein Usercontrol genannt MyControl.cs, meine beschädigten XML in CSPROJ sah aus wie:

<Compile Include="MyControl.cs" /> 

ich es so befestigt, dass es jetzt heißt es:

<Compile Include="MyControl.cs"> 
    <SubKey>UserControl</SubKey> 
</Compile> 

MyControl.cs liest sich wie (dies nur der Vollständigkeit halber ist):

public partial class MyControl : UserControl 
{ 
} 

Nachdem diese Änderung zu machen und Visual Studios jetzt meine Kontrolle richtig liest und lädt die Designer zu speichern. Ich habe keine Ahnung, wie diese Datei beschädigt wurde.

4

Ich hatte dieses Problem auch, ich habe die .csproj-Datei geändert, um es zu beheben. In meiner CSPROJ Datei geändert ich diese Codezeile:

<Compile Include="FormName.cs" /> 

Mit diesem Code:

<Compile Include="FormName.cs"> 
    <SubType>Form</SubType> 
</Compile> 
5

Dies, wenn die erste Klasse in der Quelldatei ist nicht auftreten wird die „partielle Klasse "für deine Form. In diesem Fall wird das Dateitypsymbol im Lösungsexplorer zunächst als Formular angezeigt, aber VS ändert es in das "C#" - Codesymbol, nachdem es die Datei geladen hat, und entfernt auch die Option "Designer anzeigen" aus dem Popup-Menü. Zumindest in VS2015 kann dies durch Auskommentieren des fehlerhaften Codes und Speichern der Datei behoben werden, wobei VS das erwartete Formularsymbol wiederherstellen wird.

+0

Das war definitiv mein Problem. Guter Ruf. –

0

Wenn Sie mehrere Klassen in der Datei haben (Schande über Sie), stellen Sie sicher, dass die Form-Klasse die erste in der Datei ist. (Frag mich nicht, wie ich das weiß.)

Verwandte Themen