2010-02-25 3 views
2

Lorsque je crée un nouveau formulaire sous un sous-dossier dans VS2008 dans un projet Winforms C++/CLI, les fichiers .h et .cpp sont correctement créés sous le sous-dossier -dossier. Toutefois, lorsque le formulaire est ouvert dans le concepteur et le titre est modifié, j'obtiens un message d'erreur indiquant que le .resx (AWOL jusqu'à ce moment particulier) fait déjà partie du projet. On peut alors localiser le .resx dans le dossier racine de la solution. Comment puis-je contourner cela? (... sans avoir à faire un bogue avec MS qui ne va pas prendre cela trop au sérieux car c'est la saison VS2010)C++/CLI, Winforms: Nouveau formulaire sous sous-dossier dans VS2008

Une option serait de créer le formulaire dans le dossier racine du projet, puis de les déplacer tous les trois fichiers (.cpp, .h et .resx) dans le sous-dossier souhaité une fois que tous les changements ont été apportés. Dans ce cas, je trouve que "View Designer" n'est plus disponible une fois qu'un formulaire a été déplacé dans un sous-dossier.

Sauvez-moi. S'il vous plaît. Je n'ai rien fait pour mériter ça.

Répondre

2

Ceci correspond au conseil habituel de mon médecin: si ça fait mal, ne le faites pas. L'IDE C++ n'est pas assez intelligent pour créer le .resx dans le bon dossier. C'est réparable cependant. Lorsque vous obtenez la boîte de message d'erreur, basculez vers l'Explorateur et déplacez vous-même le fichier .resx nouvellement créé à partir du répertoire du projet dans le sous-répertoire. Revenez en arrière et appuyez sur OK, tout semble fonctionner correctement après cela.

0

Hans réponse est juste sur, mais n'a pas résolu mon problème entièrement. Je veux que mes fichiers sources (.cpp, .h, même les fichiers .resx) se trouvent dans un sous-répertoire ("SourceCode"), et ne soient pas mélangés avec tous les dégâts dans le dossier du projet. VS rend difficile le déplacement du formulaire (Form1) hors du répertoire du projet - vous pouvez déplacer les fichiers .h et .resx (dans l'Explorateur Windows) et les ajouter (dans Soln Explorer) en tant qu'éléments existants, mais VS ne le fait pas. t les reconnaître comme un formulaire. Je ne pouvais pas trouver un moyen de dire à VS que le fichier form.h faisait partie d'un élément de formulaire (existe-t-il un moyen?)

J'ai trouvé une solution: faites un clic droit sur Fichiers d'en-tête (dans l'Explorateur de solutions) -> Ajouter-> Nouvel élément-> Formulaire Windows. Accédez au sous-répertoire de code source et nommez le formulaire (myForm). Ensuite, copiez le code source du fichier form1.h d'origine et collez-le sur la source dans le nouveau fichier myForm.h. Faites de même pour le fichier form1.cpp/myForm.cpp. En outre, effectuez une recherche globale et remplacez l'ancien nom de formulaire (Form1) par le nouveau (myForm) dans tous les fichiers de projet (si vous avez modifié le nom du formulaire). À ce stade, vous pouvez supprimer l'original form1.h et form1.cpp dans l'Explorateur de solutions (mais ne supprimez pas les fichiers tant que vous n'êtes pas sûr que tout va bien avec les nouvelles versions).

Cela a semblé fonctionner, mais au début, je n'ai pas vu de fichier myForm.resx sous myForm.h dans l'explorateur de solutions. Après avoir réorganisé les contrôles sous la nouvelle forme (myForm), j'ai reçu le message ".resx fait déjà partie du projet". La boîte de message ne prendrait pas OK pour une réponse. J'ai vu myForm.resx fichier dans le sous-dossier (?), Mais j'ai remarqué qu'il y avait aussi un dans le dossier du projet. Je pense que j'ai supprimé celui dans le dossier du projet. Il y avait alors deux fichiers myForm.resx dans Soln Explorer (les deux fichiers .resx avaient le même nom). D'une façon ou d'une autre, j'ai déterminé que le premier correspondait au dossier du projet, et je l'ai supprimé. Maintenant tout fonctionne bien.

BTW, je travaille avec VS2010. Je m'attends à ce que mon travail s'applique également à VS2008. J'ai utilisé un truc similaire avec VS2003 quand un formulaire planterait (ce qui était souvent).

Questions connexes