2009-05-14 5 views
22

Quelle est la meilleure façon de copier ou couper/passer un formulaire d'un projet à un autre projet dans une solution dans Visual Studio? Chaque fois que je l'essaye, en utilisant l'explorateur de solution (glisser-déposer ou clic droit couper et passer), il copie seulement le code C# sous-jacent et non les éléments nécessaires pour visualiser le formulaire via le formulaire designer.Copie de formes de contour entre des projets dans Visual Studio

+0

De quels «morceaux» avez-vous besoin? Copie-t-il les fichiers Designer.cs et .resx, ou seulement le fichier YourForm.cs? –

+0

Type de doublon - serait-il préférable si je mets ma solution sous la question "Gold", puis supprimé cette question? – Vidar

Répondre

9

Compris - savait 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 avant de vous faire une copie ou coller ou bien vous aurez le problème que j'ai décrit.

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

0

Sélectionnez-vous le fichier ou utilisez-vous le concepteur pour "copier" toutes les commandes? En sélectionnant le fichier YourForm.cs dans l'Explorateur de solutions et en le copiant par copier-coller ou par glisser-déposer sur votre autre projet, vous devez réaliser ce dont vous avez besoin.

+0

Édité ci-dessus conformément à votre question. – Vidar

3

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

Mais je dois vous demander pourquoi vous voudriez conserver une copie du même formulaire dans plusieurs projets au sein de la même solution. Il semble que vous souhaitiez généraliser le code, le placer dans une bibliothèque de classes et le réutiliser aux endroits où cela s'applique.

+0

Non, je viens de créer un formulaire dans le mauvais projet et maintenant je veux le déplacer dans le bon projet. – Vidar

+0

J'ai également ajouté les fichiers designer.cs et resx aussi - ne change toujours rien. – Vidar

+0

OK; Je voulais juste soulever le drapeau depuis que vous avez utilisé le mot "copier" au lieu de "déplacer": o) –

3

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

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

+0

Il supporte réellement la copie de formulaires - en utilisant actuellement ReSharper - et l'aime beaucoup. – Vidar

33
  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 du concepteur.
  3. Modifiez l'attribut Espace de nom. Le fichier .cs devrait également entrer. Modifiez l'espace de noms dans le fichier .cs. Ajouter le fichier resx en utilisant Add existing item.
+0

Merci, a bien fonctionné. J'ai été ajouter le premier fichier Form1.cs – Jack

+7

Dans VS2013, il est encore plus facile, il suffit de copier les fichiers de formulaire .cs, .designer et .resx dans le dossier de la solution cible. Utilisez 'Ajouter un élément existant' comme ci-dessus MAIS AJOUTEZ le fichier .cs. C'est tout! Les 3 fichiers introduits dans l'espace de nommage AND sont automatiquement modifiés! –

+1

J'ai fait Joe en vs 2015 et ça a marché! –

7

C'est plus facile maintenant en 2012. Allez simplement dans Fichier> Ajouter> Projet existant> Faites glisser et déposez le formulaire dans le projet auquel vous voulez l'ajouter.

0

** 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 une solution cible

3) Sélectionnez ces fichiers et de les inclure dans le projet.

Cela va ajouter winform ou tous les autres fichiers partiellement divisés proprement.

0

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) En point fort de fichiers Windows Explorer et copiez tous les 3 fichiers de formulaire (ou de .vb .cs, .designer, .resx)

(2) Ceci peut être accompli 2 façons:

(2a-1) Dans l'Explorateur de fichiers coller les 3 fichiers dans le dossier du projet avec vos autres formes

(2a-2) Dans VS Solution Explorer, tourner « Afficher tous les fichiers » sur, Clic droit sur le collé formulaire & 'Inclure dans le projet'. Cela devrait fonctionner sans d'autres changements.

Ou, je pense mieux:

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

+0

n'a pas fonctionné pour moi, je pense que vous avez encore besoin de renommer la classe – MrCalvin

9

Pour copier une forme d'un projet de VS2013 à l'autre, le plus facile (plus petit nombre de clics de souris) est:

  1. Dans votre projet cible, clic droit sur votre dossier parent (probablement votre projet) et dans le menu, sélectionnez "Ajouter un élément existant". Sélectionnez ensuite le fichier cs du formulaire dans votre projet source.

  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.

3

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 solution> Ajouter> Menus de projet existants. Sélectionnez le projet et cliquez sur OK.
  2. Maintenant, faites un clic droit sur le formulaire que vous voulez copier, sélectionnez copier.
  3. Cliquez avec le bouton droit de la souris sur le projet dans lequel vous souhaitez copier et sélectionnez Coller.
  4. Le formulaire sera copié dans votre projet, renommer maintenant les espaces de noms.
  5. Supprimez le projet que vous avez ajouté à l'étape 1 de votre solution.
1

Pour V.12 Visual Studio ceci est la seule méthode qui a fonctionné pour moi (Il est un mélange d'entrées ci-dessus):

  • Copier dans l'Explorateur de fichiers les trois fichiers que le formulaire est composé .
  • Dans la barre supérieure de l'explorateur de solutions dans Visual Studio, activez «Afficher tous les fichiers».
  • Le fichier file.cs apparaît en gris. Cliquez sur le bouton droit et sélectionnez: "Inclure dans le projet". L'explorateur de solution lie automatiquement les trois fichiers (.designer et .resx sous le fichier .cs). Le fichier.cs change d'icône en C++ pour former l'icône.
0

J'utilise Visual Studio 2010, voici les étapes que j'EFFECTUES:

  1. Copiez tous les 3 fichiers (.cs, .resx, .Designer.cs) dans le dossier du projet de destination.
  2. Dans Visual Studio, cliquez droit Projet -> Ajouter ->article existant ...
  3. Sélectionner 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. Fait!
Questions connexes