Foros del Web » Programación para mayores de 30 ;) » .NET »

Como pasar de un proyecto a otro

Estas en el tema de Como pasar de un proyecto a otro en el foro de .NET en Foros del Web. Hola, Tengo una solucion con dos proyectos. Uno en WPF y otro en windows forms. Quiero poner un boton en una ventana del proyecto de ...
  #1 (permalink)  
Antiguo 18/08/2009, 13:12
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 0
Como pasar de un proyecto a otro

Hola,

Tengo una solucion con dos proyectos. Uno en WPF y otro en windows forms.

Quiero poner un boton en una ventana del proyecto de WPF y que pinchando me lleve a la ventana principal del proyecto hecho en windows forms.

He intentado agregar una referencia de un proyecto a otro, y nada. Tambien intente agregar unas librerias: System.Windows.Forms.dll. Pero no llegue a encontrarlas, el visual studio no me las detectaba.

Alguien sabe como se hace? o si se puede hacer?

Gracias,
Un saludo
Maiu
  #2 (permalink)  
Antiguo 18/08/2009, 16:37
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Como pasar de un proyecto a otro

Hola.

Me parece que no te va quedar otra que llamar al ejecutable del proyecto, si bien la solución el la misma no podes llamar directamente a un formulario de otro proyecto.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 18/08/2009, 17:02
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Como pasar de un proyecto a otro

Difiero con Hector, claro que puedes invocar a un winform desde tu aplicacion wpf.

Usando Reflection.

Código CSHARP:
Ver original
  1. Type x = Type.GetType("WpfApplication2.Form1");
  2.             System.Reflection.Assembly ensamblado= System.Reflection.Assembly.GetAssembly(x);
  3.             object r = ensamblado.CreateInstance("WpfApplication2.Form1");
  4.             System.Reflection.MethodInfo[] info = x.GetMethods();
  5.             foreach (System.Reflection.MethodInfo currentMethodInfo in info)
  6.             {
  7.                 if(currentMethodInfo.Name.Equals("Show"))
  8.                 {
  9.                     try
  10.                     {
  11.                         currentMethodInfo.Invoke(r, null);
  12.                         break;
  13.                     }
  14.                     catch (Exception ex)
  15.                     {
  16.                         //throw new ApplicationException("No es la sobrecarga que buscabamos",ex);
  17.                     }
  18.                 }
  19.             }

Atencion , si tu form no es parte de tu proyecto wpf simplemente necesitas usar el metodo

System.Reflection.Assembly.LoadFile("nombredetuwin formexecutable.exe");


y saber cual es lnombre del NameSpace.Clase que quieres instanciar.

Código csharp:
Ver original
  1. System.Reflection.Assembly ensamblado= System.Reflection.Assembly.LoadFile("c:\\Ejecutable.exe");
  2.             Type x = ensamblado.GetType("NameSpace.FormularioOClase");
  3.             object r = ensamblado.CreateInstance("NameSpace.FormularioOClase");
  4.             System.Reflection.MethodInfo[] info = x.GetMethods();
  5.             foreach (System.Reflection.MethodInfo currentMethodInfo in info)
  6.             {
  7.                 if(currentMethodInfo.Name.Equals("Show"))
  8.                 {
  9.                     try
  10.                     {
  11.                         currentMethodInfo.Invoke(r, null);
  12.                         break;
  13.                     }
  14.                     catch (Exception ex)
  15.                     {
  16.                         //throw new ApplicationException("No es la sobrecarga que buscabamos",ex);
  17.                     }
  18.                 }
  19.             }
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 18/08/2009 a las 17:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:23.