web-dev-qa-db-fra.com

Impossible de récupérer la fenêtre d'affichage du concepteur à l'aide de formulaires Windows avec Visual Studio 2010

Je suis en train d'écrire une application Windows Forms C # à l'aide de Visual Studio Express 2010 ENU SP1. Plus de détails sur VS se trouvent au bas de ce post. J'ai récemment apporté des modifications à la présentation à l'aide de la vue du concepteur, puis j'ai décidé que je ne souhaitais pas les modifications. J'ai donc fermé la fenêtre du concepteur. La fenêtre de code était toujours ouverte lorsque j'ai fermé le projet et les modifications ont été enregistrées de toute façon. Je ne me soucie pas des modifications car la mise en page peut être facilement restaurée, à part le fait que je ne trouve aucun moyen de rouvrir la fenêtre du concepteur visuel. Pour récupérer la fenêtre, j'ai essayé ce qui suit:

Maj F7

Clic droit dans la fenêtre du code du concepteur

Double-cliquez sur le fichier de concepteur sous l'explorateur de solutions.

Sélectionnez le fichier de concepteur dans l'explorateur de solutions et utilisez le menu contextuel pour afficher le fichier.

J'ai une copie d'évaluation de l'équipe VS 2010 et elle affiche exactement le même comportement lorsque j'utilise mon projet.

J'ai essayé une copie de sauvegarde du projet, mais le problème est identique dans les versions Express et Team.

J'ai parcouru MSDN, le forum VS et Internet dans son ensemble et je n'ai trouvé aucune solution.

Lorsque j'ai démarré le projet pour la première fois, j'ai renommé le fichier Form1.cs à partir de l'explorateur de solutions, car je voulais utiliser un nom différent de Form1 pour l'application. Ce faisant, il a demandé ce qui suit:

"Vous renommez un fichier. Souhaitez-vous renommer dans ce projet toutes les références à l'élément de code 'nom du projet'?

J'ai répondu oui. Alors maintenant, je n'ai pas de fichier Form1.cs mais un fichier avec mon "nomprojet.cs" et le fichier de concepteur nommé "nomprojet.Design.cs. C'est le seul changement que j'ai apporté que je puisse penser qui pourrait être J'ai essayé de le renommer à Form1.cs mais cela n'a pas non plus résolu le problème.

Je dois dire que je commence à utiliser Visual Studio. Jusqu'ici, j'aime bien ça mais je suis mort dans l'eau en ce moment et si je ne parviens pas à résoudre ce problème, je vais perdre deux semaines de travail. Toute assistance sera grandement appréciée.

Merci, - Tom

Détails supplémentaires:

Windows 7 Professionnel SP1 32 bits x86

Microsoft Visual Studio 2010 Version 10.0.40219.1 SP1RelMicrosoft .NET Framework Version 4.0.30319 SP1Rel

Version installée: C # Express

Microsoft Visual C # 2010 01014-169-2560017-70726Microsoft Visual C # 2010

Microsoft Visual C # 2010 Express Service Pack 1 (KB983509) KB983509 Ce service pack est destiné à Microsoft Visual C # 2010 Express - ENU . Si vous installez ultérieurement un service pack plus récent, ce service pack sera automatiquement désinstallé .

20
user1443434

Je me rends compte que c'est un vieux fil maintenant, mais un de mes projets dans VS2010 était similaire. Il n'y avait aucun moyen de modifier le formulaire dans le concepteur de formulaire.

En fin de compte, il y a un problème dans le fichier .csproj. Il existe un groupe d'articles qui spécifie ce qui est compilé. Dans la balise du groupe d'éléments, pour mon formulaire, il y avait ...

<Compile Include="AreaChart.cs" />

il fallait ...

<Compile Include="AreaChart.cs">
  <SubType>Form</SubType>
</Compile>

La balise XML de sous-type était manquante. Un changement rapide dans le fichier de projet et je pourrais modifier le formulaire à nouveau.

42
threads

Une autre façon de bousiller le concepteur de formulaires - j'avais quelque chose comme ça:

namespace MyProgram
{
    public struct SomeStruct {
        int a,b;
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

Il s'avère que vous ne pouvez pas définir la définition de SomeStruct même si tout fonctionne correctement et qu'il n'y a pas d'erreur Une fois que je l'ai déplacé, j'ai pu revoir la vue du concepteur.

24
Amati

Encore une fois, c’est un vieux fil, mais l’intérêt du Web indique que de nombreuses personnes ont toujours ce problème et qu’il n’a pas été résolu.

J'utilise VS2012 et le problème est survenu lorsque j'ai copié un contrôle de bibliothèque qui génère 3 formulaires dans une bibliothèque séparée pour un développement ultérieur. Tous les contrôles des formulaires s’affichent parfaitement à l’exécution, mais le concepteur affiche un formulaire vierge.

Le problème n'était pas comme ci-dessus (intact), mais, grâce à cet indice, j'ai ajouté un nouveau formulaire et comparé les entrées du fichier .csproj. Pour chacun des formulaires copiés, une entrée semblable à celle-ci était affichée:

<Compile Include="MyForm.Designer.cs" />

Ce qui était nécessaire était:

<Compile Include="MyForm.Designer.cs">
    <DependentUpon>MyForm.cs</DependentUpon>
</Compile>

L'ajout manuel de ces formulaires pour chaque formulaire a résolu le problème.

15
David

Assurez-vous qu'aucune classe n'a été déclarée avant votre classe partielle de concepteur. Le fichier .cs doit avoir la classe de concepteur partielle comme première classe du fichier.

public partial class frmWidget : Form
{
}

public class SomeClass
{
}

Maintenant, SomeClass ne peut pas être au-dessus de la classe frmWidget partielle. Une fois que vous avez réorganisé cela, le problème lié au concepteur sera automatiquement résolu et il ne sera pas nécessaire de redémarrer VS ou de recréer le formulaire. J'espère que ça aide.

9
Vijay Bansal

J'ai essayé toutes les suggestions mentionnées dans cette question, rien n'a fonctionné pour Visual Studio Community 2017 

  • pas de coup Shift-F7
  • aucun élément de menu contextuel visible
  • pas de double-clic sur MainForm.cs
  • pas de mauvais ordre de classe dans MainForm.cs
  • pas d'entrées erronées dans le fichier mysolutionname.csproj

Mais cela a fonctionné pour moi

  1. Faites un clic droit sur votre fichier MainForm.cs (ou 'Form.cs' en fonction de la façon dont vous l'avez nommé)
  2. "Exclure du projet". Ceci supprime temporairement MainForm.cs , MainForm.Designer.cs et MainForm.resx
  3. Utilisez 'Ajouter »Article existant' et sélectionnez MainForm.cs. Cela ré-inclura les trois fichiers.
    Bien sûr, vous devriez les rajouter dans le même dossier qu'auparavant
  4. Double-cliquez sur MainForm.cs et le mode Création s'ouvre comme par magie
5
nixda

J'ai eu le même problème, mais le mien a été causé sur VS2012 en glissant-déposant certains formulaires dans des dossiers différents.

La solution de David ci-dessus a été utile pour résoudre le problème, mais n'a pas été complète.

Si vous avez le formulaire dans un sous-dossier, la ligne Compile Include devrait ressembler à ceci:

<Compile Include="SubFolderName\MyForm.Designer.cs">
    <DependentUpon>MyForm.cs</DependentUpon>
</Compile>

Veuillez noter que le nom du sous-dossier est requis dans la première ligne mais pas dans la deuxième ligne.

J'ai également dû modifier la ligne EmbeddedResource plus bas dans le fichier pour associer le fichier resx:

   <EmbeddedResource Include="SubFolderName\MyForm.resx">
        <DependentUpon>MyForm.cs</DependentUpon>
    </EmbeddedResource>

Encore une fois, notez que la première ligne mentionne le sous-dossier, contrairement à la deuxième ligne.

3
GrandMasterFlush

Merci pour les pensées. Je viens de réinstaller complètement les copies Express et d'évaluation des versions Team de VS 2010 et tout fonctionne comme par magie. Je n'ai aucune idée de ce qui a causé le problème, ni de ce qui a été résolu, mais je suis de nouveau sur la bonne voie. J'aurais probablement dû le faire avant de poser ma question sur ce forum.

2
user1443434

J'ai eu le même problème avec VB. Merci pour les conseils. J'ai trouvé les mêmes problèmes dans le .vbproj avec mon UserControl.

J'avais ceci dans le fichier .vbproj:

<Compile Include="AddCommunicationTask.vb" />

Et l'a changé pour ceci:

<Compile Include="AddCommunicationTask.vb">
   <SubType>UserControl</SubType>
</Compile>

Quand je l'ai rechargé, j'avais toujours des problèmes et je me suis rendu compte que j'avais écrit une autre classe au-dessus de la classe de formulaire. La classe de formulaire doit être la première. Tout ce que j'avais à faire, c'était de déplacer ma classe vers le bas et de la placer en première classe.

J'espère que cela aide les autres - bonne chance!

p.s - J'utilise vs Community 2015

2
Peter

J'ai eu un problème similaire, mais pas tout à fait le même. 

J'ai copié un formulaire d'un projet à un autre (à l'aide de l'Explorateur Windows), puis je l'ai ajouté au nouveau projet en cliquant avec le bouton droit de la souris sur le projet dans VS et en choisissant> Ajouter> Élément existant. 

Mon erreur a été d'ajouter les trois fichiers du formulaire (.cs, .designer.cs et .resx). J'aurais seulement dû ajouter le fichier .cs.

0
Mick

Bien que ce soit un sujet assez ancien, je souhaite partager mon cas et la solution.

J'ai eu le même problème, mais j'ai utilisé le composant Telerik WinForms pour ma Form. Je ne pouvais pas voir le concepteur avant de réaliser que les fonctionnalités de RadControls pour WinForm au moment du design étaient implémentées dans l'assembly Telerik.WinControls.UI.Design.dll. Ensuite, j'ajoute la référence et le concepteur apparaît.

0
vaheeds

J'ai accidentellement supprimé mon fichier Form1 [Design]. Double-cliquer sur le fichier Form1.h n'a rien fait. Le programme a été exécuté et les boutons TextBoxes et Labels étaient tous présents, mais aucun Form1 [Design] n'était visible à modifier. Je l'ai corrigé Sous: En-tête, sélectionnez Form1.h et accédez à Propriétés du fichier Form1.H. Sous Type de fichier dans le menu déroulant, changez-le en "Formulaire C++", j'ai fermé et redémarré le programme. Vous devriez maintenant pouvoir double-cliquer sur Form1.h et voir votre Form1 [conception].

0
user9372006

Je réalise que c’est un ancien thread {vraiment} _, mais j’ai eu le même problème et il s’avère qu’il existe un nœud un autre qui peut s’égarer dans le fichier csproj; la forme .resx a un nœud EmbeddedResource et le concepteur de sous-nœud manquait à la mienne. Cela m'a permis de revoir le code du formulaire dans l'EDI.

0
Nick Alexander

J'ai eu le même problème et j'ai récupéré la fenêtre (Conception) en double-cliquant sur le fichier Form1.cs dans l'Explorateur de solutions (pas le fichier Form1.Designer.cs).

0
craigjb