2009-05-14 21 views
22

¿Cuál es la mejor manera de copiar o cortar/pasar un formulario de un Proyecto a otro Proyecto dentro de una Solución en Visual Studio?Copia de winforms entre proyectos en Visual Studio

Cada vez que lo intento, usando el explorador de soluciones (arrastrando y soltando o haciendo clic derecho en cortar y pasar), solo copia el código C# subyacente y no los 'bits y piezas' necesarios que te ayudan a visualizar el formulario a través del formulario diseñador.

+0

¿Qué "bits y piezas" te hace falta? ¿Está copiando los archivos Designer.cs y .resx, o solo el archivo YourForm.cs? –

+0

Tipo de duplicado: ¿sería mejor si puse mi solución en la pregunta "Gold" y luego borré esta pregunta? – Vidar

Respuesta

9

Lo descubrí, sabía que sería algo tonto.

Al parecer, el proyecto de destino deben tener las referencias:

  • System.Windows.Forms
  • System.Drawing

incluidas dentro del proyecto PRIMERO antes de hacer cualquier copia o pegar o de lo contrario Obtendrás el problema que describí.

Gracias a todos los que intentaron ayudar por cierto.

0

¿Está seleccionando el archivo o utilizando el diseñador para "Copiar" todos los controles? Seleccionar el archivo YourForm.cs en el Explorador de soluciones y copiarlo mediante copiar y pegar o arrastrar y soltar en su otro proyecto debería lograr lo que necesita.

+0

editado arriba en línea con su pregunta. – Vidar

3

Asegúrese de copiar no solo Form.cs, sino también los archivos Form.designer.cs y Form.resx.

Pero necesito preguntar por qué querría mantener una copia del mismo formulario en varios proyectos dentro de la misma solución. Suena como si quisiera generalizar el código en él, ponerlo en una biblioteca de clase y volver a usarlo en los lugares donde sea aplicable.

+0

No, acabo de diseñar un formulario en el proyecto incorrecto y ahora quiero moverlo al proyecto correcto. – Vidar

+0

También agregué los archivos designer.cs y resx, pero aún no cambio nada. – Vidar

+0

OK; Solo quería levantar la bandera ya que usaste la palabra "copiar" en lugar de "mover": o) –

3

Use ReSharper (obtenga la demostración), haga clic con el botón derecho en la clase en Vista de código, Refactorizar-> Mover, y muévalo a otro proyecto.

El beneficio adicional es que si cambia el espacio de nombres moviéndolo entre proyectos, actualizará automáticamente todas las referencias.

+0

Realmente tiene un buen soporte para copiar formularios, actualmente usando ReSharper, y me gusta mucho. – Vidar

33
  1. copiar los tres ficheros, .cs, .designer, resx a la carpeta de solución de destino.
  2. En el proyecto de destino, seleccione Add existing item y agregue primero el archivo de diseñador.
  3. Modifique el atributo del espacio de nombres. El archivo .cs también debería venir.
  4. Modifique el espacio de nombres en el archivo .cs.
  5. Agregue el archivo resx usando Add existing item.
+0

Gracias, funcionó bien. Me agregaron el archivo Form1.cs primero – Jack

+7

En VS2013, es aún más fácil, simplemente copie los archivos de formulario .cs, .designer y .resx en la carpeta de la solución de destino. Use 'Agregar elemento existente' como arriba, pero agregue el archivo .cs. ¡Eso es! ¡Los 3 archivos traídos en el espacio de nombres AND se cambian automáticamente! –

+1

¡Hice Joe en vs 2015 y funcionó! –

7

Es mucho más fácil ahora en 2012. Simplemente vaya a Archivo> Agregar> Proyecto existente> Arrastre y suelte el formulario en el proyecto al que desea agregarlo.

0

** Esta funciona para mí:

1) copia los archivos de origen (.cs o VB, .designer,.resx) en la carpeta de destino

2) Mostrar archivos ocultos en la solución objetivo

3) Seleccione estos archivos e incluirlos en el proyecto.

Esto agregará limpiamente winform o cualquier otro archivo parcialmente dividido.

0

El uso de VS2013 acaba de probar esto y parece confiable y consistente. Esto es similar a algunos comentarios anteriores, pero agrega otro método más rápido.

(primera) En Windows destacado Explorador de archivos y copiar todos los archivos de formularios (3 .vb o .cs, .designer, .resx)

(segundo) Esto se puede lograr de 2 maneras:

(2a-1) en el Explorador de archivos pegar los 3 archivos en la carpeta del proyecto con sus otras formas

(2a-2) en VS Explorador de soluciones, a su vez 'Mostrar todos los archivos' en, haga clic derecho en el pegado formulario & 'Incluir en proyecto'. Debería funcionar sin otros cambios.

O, creo que mejor:

(2b-1) En VS, haga clic en el Explorador de soluciones y pegar w/Control-C. (Por alguna razón, el menú contextual al hacer clic derecho en el Explorador de soluciones puede no mostrar una opción pegar, pero funciona desde el teclado). Este método agrega el formulario al proyecto directamente sin tener que 'Incluir en proyecto' como se indica anteriormente. Con este método puede agregar tantos formularios a la vez como desee (los 3 archivos para cada uno) en un solo paso.

+0

no funcionó para mí, creo que todavía necesita cambiar el nombre de la clase – MrCalvin

9

Para copiar una forma de un proyecto VS2013 a otro, el más fácil, (menor número de clics del ratón) es:

  1. En su proyecto de destino, botón derecho del ratón en la carpeta principal (probable es que su proyecto) y en el menú seleccione, "Agregar; elemento existente".

  2. A continuación, seleccione el archivo cs del formulario en su proyecto de origen. Por ejemplo, seleccione Form.cs (no Form.Designer.cs o Form.resx).

  3. Abra Form.cs en su proyecto de destino y cambie el espacio de nombres (todas las instancias).

  4. Cerrar y abrir Form.cs y verá todos los controles, etc.

3

He probado el siguiente proceso en Visual Studio 2012 y funcionó.

  1. Agregue el proyecto desde el que desea importar el formulario a su solución, haciendo clic derecho en solución> Agregar> Menús existentes del proyecto. Seleccione el proyecto y haga clic en Aceptar.
  2. Ahora haga clic derecho en el formulario que desea copiar, seleccione copiar.
  3. Haga clic con el botón derecho en el proyecto donde desea copiar y seleccione pegar.
  4. El formulario se copiará en su proyecto, ahora cambie el nombre de los espacios de nombres.
  5. Elimine de su solución el proyecto que agregó en el paso 1.
1

Para Estudio Visual V.12 Este es el único método que trabajó para mí (que es una mezcla de las entradas anteriores):

  • Copiar archivos a través de Explorador de los tres archivos que el formulario se compone .
  • En la barra superior del explorador de soluciones en Visual Studio, active "mostrar todos los archivos".
  • El archivo file.cs aparece en gris. Haga clic en el botón derecho y seleccione: "Incluir en proyecto". El explorador de soluciones vincula automáticamente los tres archivos (.designer y .resx en el archivo .cs). El archivo.cs cambia el icono de C++ al icono de formulario.
0

Estoy utilizando Visual Studio 2010, a continuación son los pasos que ha realizado:

  1. Copiar los 3 archivos (cs, .resx, .Designer.cs) en la carpeta de proyecto de destino.
  2. En Visual Studio, haga clic derecho Proyecto -> Añadir ->elemento existente ...
  3. Seleccionar todos los archivos (3 cs, .resx, .Designer.cs), haga clic en Agregar .
  4. Cambie el espacio de nombres en 2 archivos (.cs, .Designer.cs), si es un espacio de nombres diferente en el proyecto de destino.
  5. Ejecute el proyecto.
  6. ¡Listo!
Cuestiones relacionadas