none
Llamar a formularios desde Menu Dinamico RRS feed

  • Pregunta

  • Hola a todos

    Les comento que me encuentro desarrollando unos formularios en un proyecto de Controles Winforms, pues genere una botonera con eventos y esto lo pues en un form (frmBase) dentro del mismo proyecto, tambien he creado un form MDIPadre el cual contendra un menu que se generara desde BD, inicialmente en la BD estaran los textos del menu y nombre de los futuros forms a mostrarse. Como todo estos se encuentra en un proyecto de Controles de Usuario Winforms se compilara en una dll.

    Esta dll se referenciara desde nuevos proyectos para crear formularios hijos (formularios que hereden de frmBase y de MDIPadre).

    Pero tengo un problema al llamar a estos formularios desde el menu, por lo cual detallo con imagenes.

     

    El error se marca en la linea 60 de MDIPadre, pues se ejecuta frmMDI que hereda de MDIPadre para contar con el menu.

    El mensaje de error indica: El valor no puede ser nulo.
    Nombre del parámetro: type

    jueves, 23 de mayo de 2013 15:39

Todas las respuestas

  • El Type.GetType("Espacio.Nombre") sólo funciona cuando ese tipo está definido dentro del mismo ensamblado que hace la llamada. Pero en tu caso, ese formulario está en OTRO ensamblado. Esto requiere pasarle al GetType lo que se denomima "AssemblyQualifiedName ", que tiene un aspecto parecido a este: "TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089"

    Como ves, el nombre completo del ensamblado es un poco difícil de construir. Puedes obtenerlo ejecutando una llamada a objeto.AssemblyQualifiedName.ToString(). Obviamente esta llamada sólo la escribirías dentro de tu programa provisionalmente para ver cómo es el nombre completo del formulario en cuestión; luego la borrarías.

    jueves, 23 de mayo de 2013 21:43
  • Alberto, gracias por tu respuesta. Pero me parece lo que indicas seria ejecutar en mi WinTest (Proyecto WINFORMS) pues el script que indico arriba esta en el MDIPadre del proyecto Heredables (Proyecto Control de Usuario).

    Ocurre que en el proyecto Heredables (Proyecto Control de Usuario), he creado un formulario MDI (MDIPadre) que tiene un metodo el cual generara un menu dinamico al leer de un origen de datos y un formulario frmBase que tiene una botonera.

    Para realizar una prueba de esto he creado un proyecto WinTest (Proyecto WINFORMS), en este tengo un formulario frmMDI que hereda de MDIPadre, frmMDI llama el metodo crearMenu(parametros_db) y aqui genera el error que indico inicialmente.

    En conclusion el ensamblado recibira los parametros servidor y base de datos y en el MDI heredado generara el menu con los datos de la bd que contiene el nombre de los formularios en WinTest.

    Si consideras necesario puedo enviarte las fuentes.

    Saludos 

    viernes, 24 de mayo de 2013 22:01