none
Llamar Formulario con nombre (string) RRS feed

  • Pregunta

  • buen dia amigos , espero su apoyo tengo un problema al intentar crear la instancia de un formulario usando una cadena de nombre que planeo usarlo como variable para llamar dinamicamente a formularios.

    mi codigo es el siguiente :

    Assembly asm = Assembly.GetEntryAssembly();
    Type formtype = asm.GetType(string.Format("{0}.{1}", "PlexOne.Element.Module.Inventory", "Form1"));
    XtraForm f = (XtraForm)Activator.CreateInstance(formtype);
    f.Show();

    el error que recivo es :


    viernes, 6 de marzo de 2020 22:48

Respuestas

Todas las respuestas

  • El null cuando usas Reflection se produce porque no ha sido capaz de encontrar el texto que le pediste. Es decir, te está fallando la llamada a asm.GetType. Puede que esté mal escrito el nombre del tipo, o que no tenga accesibilidad pública (en ese caso habría que pasarle el BindingFlags.NonPublic).

    Haz la prueba de llamar a asm.GetTypes() en plural y sin argumentos, y examinar con el debugger la lista que te devuelve. Eso te dirá cuáles son las classes que hay en el assembly, con lo que puedes apreciar si es que estabas escribiendo mal el nombre de la que buscabas.

    sábado, 7 de marzo de 2020 10:17
    Moderador
  • hola

    En el articulo

    [Winform] Instanciar Form conociendo su nombre

    explico como lograr abrir el form en base a su nombre

    pero ojo donde ubicas ese codigo, porque en principio solo aplica si ejecuta dentro del proyecto del Windows Application, si lo pones en un Class Library el assembly cambia por lo tanto no encotnrara el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 7 de marzo de 2020 22:41
  • hola

    En el articulo

    [Winform] Instanciar Form conociendo su nombre

    explico como lograr abrir el form en base a su nombre

    pero ojo donde ubicas ese codigo, porque en principio solo aplica si ejecuta dentro del proyecto del Windows Application, si lo pones en un Class Library el assembly cambia por lo tanto no encotnrara el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    excacto ese era mi problema, pero ya lo solucione seccionando y acomodando mi proyecto a mi necesidad.

    saludos y gracias por le apoyo. saludos

    domingo, 8 de marzo de 2020 1:25