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.

25
demandé sur Vidar 2009-05-14 18:16:27

13 réponses

  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 D'espace de noms. 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.
37
répondu MORGAN OLSON 2012-09-28 00:26:00

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

  1. 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".

  2. 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).

  3. Forme Ouverte.cs dans votre projet cible et modifiez l'espace de noms (Tous instance).

  4. Fermez et rouvrez le Formulaire.cs et vous verrez tous les contrôles, etc.

13
répondu Chris Patterson 2014-06-05 18:16:36

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.

9
répondu Vidar 2012-10-23 08:52:33

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.

7
répondu user3006071 2013-11-18 19:40:33

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.

3
répondu Fredrik Mörk 2009-05-14 14:25:52

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.

3
répondu Chris Doggett 2009-05-14 14:33:26

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 dans votre solution, en cliquant avec le bouton droit sur solution > Ajouter > menus de projet existants. Sélectionnez le projet et cliquez sur OK.
  2. Maintenant, cliquez-droit sur le formulaire que vous souhaitez copier, sélectionnez copier.
  3. Faites un clic droit sur le projet où vous voulez copier et sélectionnez Coller.
  4. Le formulaire sera copié dans votre projet, maintenant renommer les espaces de noms.
  5. Supprimer le projet que vous avez ajouté à l'étape 1 de votre solution.
3
répondu Ram 2014-09-04 03:36:42

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.
1
répondu Juan Jose Sanchez 2017-07-25 11:41:57

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.

0
répondu Adam Robinson 2009-05-14 14:18:42

** 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.

0
répondu Nexus23 2014-01-23 12:03:04

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.

0
répondu Alan 2014-05-30 19:49:29

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

  1. Copiez les 3 fichiers (.cs, .resx, .Designer.cs) dans le dossier du projet de destination.
  2. À Visual Studio, cliquez-droit sur Projet -> Ajouter -> un Élément Existant...
  3. Sélectionnez les 3 fichiers (.cs, .resx, .Designer.cs), cliquez sur Ajouter.
  4. 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.
  5. Exécutez le projet.
  6. fait!
0
répondu LifeiSHot 2017-12-06 09:05:15

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. Allez maintenant dans votre explorateur de solutions de projet et cliquez sur l'icône Afficher tous les fichiers en haut du sol.explorer
  3. Maintenant, vous pouvez voir vos fichiers nouvellement ajoutés s'afficher dans votre projet.
0
répondu SaddamBinSyed 2018-09-27 09:52:20