web-dev-qa-db-fra.com

Copier des formulaires entre des projets dans Visual Studio

Quel est le meilleur moyen de copier ou couper/coller un formulaire d'un projet à un autre projet dans une solution dans Visual Studio?

Chaque fois que j'essaye, à l'aide de l'explorateur de solution (glisser-déposer ou clic droit, couper et coller), il ne fait que copier le code C # sous-jacent et non les éléments indispensables qui vous aident à visualiser le formulaire via son concepteur.

27
Vidar

Je l'ai compris - je savais que ce serait quelque chose de stupide.

Apparemment, le projet cible devrait avoir les références:

  • System.Windows.Forms
  • System.Drawing

inclus dans le projet EN PREMIER avant de faire une copie ou un collage, sinon vous obtiendrez le problème que j'ai décrit.

Merci à tous ceux qui ont essayé d'aider BTW.

9
Vidar
  1. Copiez les trois fichiers, .cs, .designer, resx dans le dossier de la solution cible.
  2. Dans le projet cible, sélectionnez Add existing item et ajoutez d'abord le fichier de concepteur. 
  3. Modifier l'attribut Namespace. Le fichier .cs devrait également entrer. 
  4. Modifiez l'espace de noms dans le fichier .cs.
  5. Ajoutez le fichier resx en utilisant Add existing item.
40
MORGAN OLSON

Pour copier un formulaire d'un projet VS2013 à un autre, le plus simple (le moins de clics de souris) est:

  1. Dans votre projet cible, cliquez avec le bouton droit de la souris sur votre dossier parent (probablement votre projet) et sélectionnez "Ajouter; Élément existant" dans le menu.

  2. Ensuite, sélectionnez le fichier cs du formulaire dans votre projet source. Par exemple, sélectionnez Form.cs (pas Form.Designer.cs ou Form.resx).

  3. Ouvrez Form.cs dans votre projet cible et modifiez l'espace de noms (toutes les instances).

  4. Fermez et rouvrez Form.cs et vous verrez toutes les commandes, etc.

15
Chris Patterson

C'est beaucoup plus facile maintenant en 2012. Il suffit d'aller dans Fichier> Ajouter> Projet existant> Faites glisser et déposez le formulaire dans le projet auquel vous souhaitez l'ajouter.

7
user3006071

J'ai essayé le processus suivant dans Visual Studio 2012 et cela a fonctionné.

  1. Ajoutez le projet à partir duquel vous souhaitez importer le formulaire à votre solution en cliquant avec le bouton droit de la souris sur la solution> Ajouter> Menus du projet existant. Sélectionnez le projet et cliquez sur OK.
  2. Maintenant, faites un clic droit sur le formulaire que vous souhaitez copier, sélectionnez Copier.
  3. Faites un clic droit sur le projet où vous souhaitez copier et sélectionnez coller.
  4. Le formulaire sera copié dans votre projet, renommez maintenant les espaces de noms.
  5. Supprimez le projet que vous avez ajouté à l'étape 1 de votre solution.
3
Ram

Assurez-vous de copier non seulement les fichiers Form.cs, mais également les fichiers Form.designer.cs et Form.resx.

Mais je dois demander pourquoi vous voudriez conserver une copie du même formulaire dans plusieurs projets au sein de la même solution. On dirait que vous pourriez vouloir généraliser le code, le placer dans une bibliothèque de classes et le réutiliser aux endroits où il est applicable.

3
Fredrik Mörk

Utilisez ReSharper (obtenez la démo), cliquez avec le bouton droit sur la classe en mode Code, Refactor> Déplacer et déplacez-la dans un autre projet.

L'avantage supplémentaire est que si vous modifiez l'espace de noms en le déplaçant entre les projets, toutes les références seront mises à jour automatiquement.

3
Chris Doggett

Si vous voulez créer des formulaires dans la même machine, vous pouvez simplement le faire.

Dans l'Explorateur de solutions Projet -> Ajouter -> Ajouter un élément existant .

Sélectionnez uniquement le fichier .cs (Sample.cs) à partir du répertoire source et actualisez l'explorateur de la solution actuelle pour qu'il fonctionne.

1
Anto sujesh

Pour Visual Studio V.12, c’est la seule méthode qui a fonctionné pour moi (c’est un mélange des entrées ci-dessus):

  • Copiez dans l'explorateur de fichiers les trois fichiers composant le formulaire.
  • Dans la barre supérieure de l'explorateur de solutions dans Visual Studio, activez l'option "Afficher tous les fichiers".
  • Le fichier file.cs apparaît en gris. Cliquez avec le bouton droit et sélectionnez: "Inclure dans le projet". La solution Explorer relie automatiquement les trois fichiers (.designer et .resx sous le fichier .cs). Le fichier file.cs change d'icône de c ++ en icône de formulaire.
1
Juan Jose Sanchez

L'utilisation de VS2013 vient de tester cela et il semble fiable et cohérent. Ceci est similaire à certains commentaires ci-dessus, mais ajoute une autre méthode plus rapide.

(1er) Dans l'Explorateur de fichiers Windows, mettez en surbrillance et copiez tous les 3 fichiers de formulaire (.vb ou .cs, .designer, .resx)

(2nd) Ceci peut être accompli de 2 manières:

(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, activez "Afficher tous les fichiers", cliquez avec le bouton droit de la souris sur le formulaire collé et "Inclure dans le projet". Cela devrait fonctionner sans autre changement.

Ou, je pense mieux:

(2b-1) Dans VS, cliquez sur Explorateur de solutions et collez w/Control-C. (Pour une raison quelconque, le menu contextuel par clic droit de l'Explorateur de solutions peut ne pas afficher une option de collage, mais fonctionne à partir du clavier.) Cette méthode ajoute directement le formulaire au projet sans avoir à "Inclure dans le projet" comme ci-dessus. Avec cette méthode, vous pouvez ajouter autant de formulaires à la fois que vous le souhaitez (les 3 fichiers pour chacun) en une seule étape.

0
Alan

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 un copier-coller ou un glisser-déposer sur votre autre projet devrait répondre à vos besoins.

0
Adam Robinson

J'utilise Visual Studio 2010, voici les étapes que j'ai effectuées:

  1. Copiez les trois fichiers (.cs, .resx, .Designer.cs) dans le dossier du projet de destination.
  2. Dans Visual Studio, cliquez avec le bouton droit de la souris sur Projet -> Ajouter -> Article existant ...
  3. Sélectionnez tous les 3 fichiers (.cs, .resx, .Designer.cs), cliquez sur Ajouter .
  4. Modifiez l'espace de noms sur 2 fichiers (.cs, .Designer.cs) s'il s'agit d'un espace de noms différent sur le projet de destination.
  5. Exécutez le projet.
  6. Terminé!
0
LifeiSHot

J'ai essayé les étapes ci-dessous et cela a bien fonctionné.

  1. copiez tous les 3 fichiers et fichiers d'icônes (le cas échéant) dans le projet cible.
  2. Maintenant, allez dans l'explorateur de votre solution de projet et cliquez sur l'icône Afficher tous les fichiers en haut de Sol.Explorer
  3. vous pouvez maintenant voir vos fichiers nouvellement ajoutés dans votre projet.
0
SaddamBinSyed

** Celui-ci fonctionne pour moi:

1) Copiez les fichiers sources (.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 proprement winform ou tout autre fichier partiellement divisé.

0
Nexus23