Hola,
necesito un poco de ayudita con esto a ver si alguien puede. Tengo una
aplicación hecha con VS2003 y la he convertido a VS2005, pues bien en esta
aplicación tengo un formulario MDI en el que desde el menú llamo de forma
dinámica a los formularios y lo hago con System.Reflection, pero cada vez
que intento visualizar un formulario invocando al método Show desde
reflection me salta la excepción System.Reflection.AmbiguousMatchException,
lo que pasa es que antes los formularios tenían un metodo Show, pero en el
.NET 2.0 este ha sido sobrecargado y ahora hay dos coincidencias para este
método, mi problema es que no sé cómo hacer que llame al Show de forma
correcta. Pongo el código que utilizo para que le echeis un vistazo a ver si
me podeís ayudar.
public void InvocarForm ( object Parent, string NombreClase)
{
object[] param = {Parent};
object obj;
PropertyInfo pty;
MethodInfo mti;
System.Drawing.Point pt = new System.Drawing.Point(0,0);
//Localización del formulario hijo.
Assembly asby = Assembly.LoadFrom("Gestion.exe");
Type classType = asby.GetType("Gestion." + NombreClase);
obj = Activator.CreateInstance(classType);
pty = classType.GetProperty("MdiParent");
mti = pty.GetSetMethod();
mti.Invoke (obj,param);
mti = classType.GetMethod("Show"); 'Aquí es donde me da el error mti.Invoke (obj,null);
pty = classType.GetProperty("Location");
mti = pty.GetSetMethod();
param[0] = pt;
mti.Invoke (obj,param);
}
Gracias y un saludo.
Leer las respuestas