llamar a un formulario

25/08/2004 - 22:51 por Yo | Informe spam
Amigos tengo el siguiente problema necesito llamar a un formulario en una
aplicacion , el nombre de el mismo se encuentra en una base de datos
se que un formulario se llama asi

miformulario d= new miformulario();
d.Show;

pero no tengo la remota idea de como llamar a uno cullo nombre se encuentre
en la base de datos encontre una forma de hacerlo con Assembly pero debo
crear un dll , peor no es la forma que necesito,

Seria estupendo que me pudieran ayudar, gracias de antemano debajo coloco la
forma de hacerlo con Assembly por si alguien la necesita


private void Execute(String assemblyName, string objectName, String
methodName) {

try {

Assembly assembly = Assembly.LoadFrom(assemblyName);

Type type = assembly.GetType(objectName);

MethodInfo method;

Form instance = (Form)Activator.CreateInstance(type);

if ((this.IsMdiContainer) && (instance.FormBorderStyle !FormBorderStyle.FixedDialog)) {

method = type.GetMethod(methodName, new Type[] {});

instance.MdiParent = this;

method.Invoke(instance, new object[]{});

} else {

method = type.GetMethod(methodName, new Type[] {typeof(Form)});

method.Invoke(instance, new object[]{this});

}

}

catch (Exception e) {

MessageBox.Show(assemblyName + Environment.NewLine + objectName +
Environment.NewLine + methodName + Environment.NewLine + e.ToString());

}

}
 

Leer las respuestas

#1 pablo crosio
25/08/2004 - 23:37 | Informe spam
hola!

si decis que el formulario esta definido en el mismo
ensamble desde el que lo queres llamar:

Form f = (Form)Activator.CreateInstance(Type.GetType
("EspacioDeNombres.NombreDeClaseFormulario"));
f.Show();

deberia funcionar

salu2!!

pablo

Amigos tengo el siguiente problema necesito llamar a un


formulario en una
aplicacion , el nombre de el mismo se encuentra en una


base de datos
se que un formulario se llama asi

miformulario d= new miformulario();
d.Show;

pero no tengo la remota idea de como llamar a uno cullo


nombre se encuentre
en la base de datos encontre una forma de hacerlo con


Assembly pero debo
crear un dll , peor no es la forma que necesito,

Seria estupendo que me pudieran ayudar, gracias de


antemano debajo coloco la
forma de hacerlo con Assembly por si alguien la necesita


private void Execute(String assemblyName, string


objectName, String
methodName) {

try {

Assembly assembly = Assembly.LoadFrom(assemblyName);

Type type = assembly.GetType(objectName);

MethodInfo method;

Form instance = (Form)Activator.CreateInstance(type);

if ((this.IsMdiContainer) && (instance.FormBorderStyle !>FormBorderStyle.FixedDialog)) {

method = type.GetMethod(methodName, new Type[] {});

instance.MdiParent = this;

method.Invoke(instance, new object[]{});

} else {

method = type.GetMethod(methodName, new Type[] {typeof


(Form)});

method.Invoke(instance, new object[]{this});

}

}

catch (Exception e) {

MessageBox.Show(assemblyName + Environment.NewLine +


objectName +
Environment.NewLine + methodName + Environment.NewLine +


e.ToString());

}

}


.

Preguntas similares