Introducción
Conociendo solo el nombre del formulario se abra una instancia del mismo.
Para poder realizar esta acción es necesario conocer el nombre del form, pero también bajo que namespace se ubica.
por ejemplo para abrir el form de alta de cliente se identifica
pero si otro form se encuentra dentro de una carpeta es necesario definir el namespace donde se encuentra
Uso de Reflection
Para poder abrirlo vamos a necesitara Reflection el cual no permitirá descubrir el Type del form basado en la unión del namespace + nombre
es por eso que se define:
using System.Reflection;
private void btnAbrirForm_Click(object sender, EventArgs e) { Assembly asm = Assembly.GetEntryAssembly(); Type formtype = asm.GetType(string.Format("{0}.{1}", txtNamespace.Text, txtNombreForm.Text)); Form f = (Form)Activator.CreateInstance(formtype); f.Show(); }
Se toma el assembly donde se encuentran los formularios y se obtiene el tipo, con el cual se creara la instancia dinámicamente
Código
[C#]
|