Copie de winforms entre des projets dans Visual Studio
Quelle est la meilleure façon de copier ou de couper/dépasser un formulaire d'un projet à un autre projet dans une Solution de Visual Studio?
Chaque fois que je l'essaie, en utilisant l'Explorateur de solutions (glisser-déposer ou clic droit couper et passer), il ne copie que le code C# sous-jacent et non les "morceaux" nécessaires qui vous aident à visualiser le formulaire via le concepteur de formulaire.
13 réponses
- Copiez les trois fichiers,
.cs
,.designer
,resx
dans le dossier de la solution cible. - dans le projet cible, Sélectionnez
Add existing item
et ajoutez d'abord le fichier de concepteur. - modifier l'attribut D'espace de noms. Le fichier
.cs
devrait également entrer. - Modifiez l'espace de noms dans le fichier
.cs
. - ajoutez le fichier
resx
en utilisantAdd existing item
.
Pour copier un formulaire d'un projet VS2013 à un autre, le plus simple (moins de clics de souris) est:
Dans votre projet cible, Faites un clic droit sur votre dossier parent (probablement votre projet) et dans le menu, sélectionnez "Ajouter; élément existant".
Sélectionnez ensuite le fichier cs du formulaire dans votre projet source. Par exemple, sélectionnez formulaire.cs (pas le formulaire.Designer.cs ou formulaire.resx).
Forme Ouverte.cs dans votre projet cible et modifiez l'espace de noms (Tous instance).
Fermez et rouvrez le Formulaire.cs et vous verrez tous les contrôles, etc.
Compris - savait que ce serait quelque chose de stupide.
Apparemment, le projet cible devrait avoir les références:
- Système.Windows.Formulaires
- Système.Dessin
Inclus dans le projet D'abord avant de faire une copie ou un collage ou bien vous obtiendrez le problème que j'ai décrit.
Merci pour tous ceux qui ont essayé D'aider BTW.
C'est beaucoup plus facile maintenant en 2012. Allez simplement dans Fichier > Ajouter > projet existant > faites glisser et déposez le formulaire dans le projet auquel vous souhaitez l'ajouter.
Assurez-vous que vous copiez non seulement le formulaire.cs, mais aussi la Forme.designer.cs et de la Forme.fichiers resx.
Mais je dois vous demander pourquoi vous voudriez conserver une copie du même formulaire dans plusieurs projets dans la même solution. On dirait que vous pourriez vouloir généraliser le code, le mettre dans une bibliothèque de classes et le réutiliser dans les endroits où il est applicable.
Utilisez ReSharper (Obtenez la démo), cliquez avec le bouton droit sur la classe dans la vue Code, Refactor->déplacer et déplacez-la Vers un autre projet.
L'avantage supplémentaire est que si vous modifiez l'espace de noms en le déplaçant entre les projets, il mettra à jour automatiquement toutes les références.
J'ai essayé le processus suivant dans Visual Studio 2012 et cela a fonctionné.
- Ajoutez le projet à partir duquel vous souhaitez importer le formulaire dans votre solution, en cliquant avec le bouton droit sur solution > Ajouter > menus de projet existants. Sélectionnez le projet et cliquez sur OK.
- Maintenant, cliquez-droit sur le formulaire que vous souhaitez copier, sélectionnez copier.
- Faites un clic droit sur le projet où vous voulez copier et sélectionnez Coller.
- Le formulaire sera copié dans votre projet, maintenant renommer les espaces de noms.
- Supprimer le projet que vous avez ajouté à l'étape 1 de votre solution.
Pour Visual Studio C. 12 c'est la seule méthode qui a fonctionné pour moi (C'est un mélange d'entrées ci-dessus):
- Copiez dans L'Explorateur de fichiers les trois fichiers que le formulaire est constitué.
- dans la barre supérieure de l'Explorateur de solutions dans Visual Studio, activez "Afficher tous les fichiers".
- le fichier.le fichier cs apparaît en gris. Cliquez sur le bouton droit et sélectionnez: "Inclure dans le Projet". L'Explorateur de solutions lie automatiquement les trois fichiers (.concepteur et .resx sous .fichier cs). Fichier.cs icône à partir de c++ pour former l'icône.
Sélectionnez-vous le fichier ou utilisez-vous le concepteur pour" copier " tous les contrôles? Sélectionner le fichier YourForm.cs
dans L'Explorateur de solutions et le copier via copier-coller ou glisser-déposer dans votre autre projet devrait accomplir ce dont vous avez besoin.
** celui-ci fonctionne pour moi:
1) Copiez les fichiers source (.cs ou vb, .designer, .resx) dans le dossier cible
2) Afficher les fichiers cachés dans la solution cible
3) Sélectionnez ces fichiers et incluez - les dans le projet.
Cela ajoutera winform ou tout autre fichier partiellement divisé proprement.
En utilisant VS2013 juste testé cela et il semble fiable et cohérent. Ceci est similaire à certains commentaires ci-dessus, mais ajoute une autre méthode qui est plus rapide.
(1st) dans l'Explorateur de fichiers Windows mettez en surbrillance et copiez tous les 3 fichiers de formulaire (.VB ou .cs, .designer, .resx)
(2nd) cela peut être accompli de 2 façons:
(2a-1) dans L'Explorateur de fichiers, collez les 3 fichiers dans le dossier du projet avec vos autres formulaires
(2a-2) dans VS Solution Explorer, tournez ' Tout afficher Fichiers 'sur, Faites un clic droit sur le formulaire collé & 'inclure dans le projet'. Cela devrait fonctionner sans autres changements.
Ou, je pense que mieux:
(2b-1) dans VS, cliquez dans L'Explorateur de solutions et collez w / Control-C. (Pour une raison quelconque, le menu contextuel du clic droit dans L'Explorateur de solutions peut ne pas afficher l'option Coller, mais cela fonctionne à partir du clavier.) Cette méthode ajoute le formulaire au projet directement sans avoir à "inclure dans le projet" comme ci-dessus. Avec cette méthode, vous pouvez ajouter autant de formes à un temps que vous le souhaitez (tous les 3 fichiers pour chacun) en une seule étape.
J'utilise Visual Studio 2010, voici les étapes que j'ai effectuées:
- Copiez les 3 fichiers (.cs, .resx, .Designer.cs) dans le dossier du projet de destination.
- À Visual Studio, cliquez-droit sur Projet -> Ajouter -> un Élément Existant...
- Sélectionnez les 3 fichiers (.cs, .resx, .Designer.cs), cliquez sur Ajouter.
- Changer l'espace de noms sur 2 fichiers (.cs, .Designer.cs), si c'est un espace de noms différent sur le projet de destination.
- Exécutez le projet.
- fait!
J'ai essayé les étapes ci-dessous et cela a bien fonctionné.
- Copiez tous les 3 fichiers et fichiers d'icônes (le cas échéant) dans le projet cible.
- Allez maintenant dans votre explorateur de solutions de projet et cliquez sur l'icône Afficher tous les fichiers en haut du sol.explorer
- Maintenant, vous pouvez voir vos fichiers nouvellement ajoutés s'afficher dans votre projet.