Código repetido

15/07/2007 - 19:35 por Norberto Kelijman | Informe spam
Estimados:

Tengo una aplicación MDI. En el formulario principal hay un menú desde el
que se abren todas las demás ventanas. El evento click del menú tiene la
forma:

private void tiposDeCobranzaToolStripMenuItem_Click(object sender, EventArgs
e)
{
...
Form_ABC_TiposDeCobranza formulario = new Form_ABC_TiposDeCobranza();
...
}

El evento es bastante más largo porque previene que el mismo formulario se
abra más de una vez, pero dejé sólo lo que importa para la consulta. Ahora
que hay muchos formularios hijos (y va a haber muchos más) el código de la
ventana principal me quedó tremendamente largo, cuando casi todo es
repetido. Mi problema es que para instanciar el nuevo formulario tengo que
nombrar la clase. ¿Cómo haría un método que cree los formularios hijos,
dándole como parámetro el nombre de la clase del formulario?

Para el caso del ejemplo, quisiera escribir en el evento click del menú algo
así como CrearFormularioHijo("Form_ABC_TiposDeCobranza"). ¿Cómo sería el
método CrearFormularioHijo()?

Gracias.
Norberto
 

Leer las respuestas

#1 Alberto Poblacion
15/07/2007 - 19:53 | Informe spam
"Norberto Kelijman" wrote in message
news:
Para el caso del ejemplo, quisiera escribir en el evento click del menú
algo así como CrearFormularioHijo("Form_ABC_TiposDeCobranza"). ¿Cómo sería
el método CrearFormularioHijo()?



Lo podrías hacer por Reflexión, pero no merece la pena: puedes llamarlo
así:

CrearFormularioHijo(new Form_ABC_TiposDeCobranza());

y el "CrearFormularioHijo" sería parecido a esto:

private void CrearFormularioHijo(Form f)
{
//...Comprobaciones para que no se abra dos veces...
f.MdiParent = this;
f.Show();
}

Preguntas similares