visual studio proyecto pegar otro mismo migrar formulario form duplicar copiar como abrir c# visual-studio winforms

c# - studio - duplicar formulario vba



Copiando formas de trabajo entre proyectos en Visual Studio (13)

¿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?

Cada vez que lo intento, utilizando el explorador de soluciones (arrastrar y soltar o haciendo clic con el botón derecho del ratón para cortar y pegar), solo copia el código C # subyacente y no las "partes y piezas" necesarias que le ayudan a visualizar el formulario a través del diseñador de formularios.


  1. Copie los tres archivos, .cs , .designer , resx a la carpeta de la solución de destino.
  2. En el proyecto de destino, seleccione Add existing item y agregue primero el archivo del diseñador.
  3. Modificar el atributo de espacio de nombres. El archivo .cs debería aparecer.
  4. Modificar el espacio de nombres en el archivo .cs .
  5. Agregue el archivo resx usando Add existing item .

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


** Esta funciona para mí:

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

2) Mostrar los archivos ocultos en la solución de destino

3) Seleccione estos archivos e inclúyalos en el proyecto.

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


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


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

Pero necesito preguntar por qué querría mantener una copia de la misma forma en varios proyectos dentro de la misma solución. Suena como si quisiera generalizar el código en él, colocarlo en una biblioteca de clases y reutilizarlo en los lugares donde sea aplicable.


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 que es más rápido.

(1º) En el Explorador de archivos de Windows, resalte y copie los 3 archivos de Formulario (.vb o .cs, .designer, .resx)

(2º) Esto se puede lograr de 2 maneras:

(2a-1) En el Explorador de archivos, pegue los 3 archivos en la carpeta del proyecto con sus otros formularios

(2a-2) En VS Solution Explorer, active ''Mostrar todos los archivos'', haga clic derecho en el formulario pegado y ''Incluir en el proyecto''. Debería funcionar sin otros cambios.

O me parece mejor:

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


Estoy usando Visual Studio 2010, a continuación están los pasos que realicé:

  1. Copie los 3 archivos (.cs, .resx, .Designer.cs) en la carpeta del proyecto de destino.
  2. En Visual Studio, haga clic derecho en Proyecto -> Agregar -> Elemento existente ...
  3. Seleccione los 3 archivos (.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. Ejecutar el proyecto.
  6. ¡Hecho!

He intentado los pasos a continuación y ha funcionado bien.

  1. copie los 3 archivos y los archivos de iconos (si los hay) en el proyecto de destino.
  2. Ahora vaya al explorador de soluciones de su proyecto y haga clic en el icono Mostrar todos los archivos en la parte superior del sol.explorador
  3. ahora puedes ver tus archivos recién agregados en tu proyecto.

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

Aparentemente el proyecto objetivo debe tener las referencias:

  • System.Windows.Forms
  • Sistema.Dibujo

incluido en el proyecto PRIMERO antes de hacer cualquier copia o pegado, o de lo contrario obtendrá el problema que describí.

Gracias a todos los que intentaron ayudar por cierto.


Para Visual Studio V.12, este es el único método que funcionó para mí (es una mezcla de las entradas anteriores):

  • Copie a través del Explorador de archivos los tres archivos que componen el formulario.
  • 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 el proyecto". El explorador de soluciones vincula automáticamente los tres archivos (.designer y .resx en el archivo .cs). El archivo file.cs cambia de c ++ a form icon.

Para copiar un formulario de un proyecto VS2013 a otro, el más sencillo (el menor número de clics del mouse) es:

  1. En su proyecto de destino, haga clic con el botón derecho del mouse en su carpeta principal (probablemente su proyecto) y en el menú seleccione "Agregar; Elemento existente".

  2. Luego seleccione el archivo cs del formulario en su proyecto fuente. 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. Cierre y vuelva a abrir Form.cs y verá todos los controles, etc.


Probé 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 la 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 derecho en el proyecto donde desea copiar y seleccione pegar.
  4. El formulario se copiará a su proyecto, ahora cambie el nombre de los espacios de nombres.
  5. Elimine el proyecto que agregó en el paso 1 de su solución.

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

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