none
Llamar formulario desde menu dinamico. RRS feed

  • Pregunta

  • hola gente, pues nada que tengo un menu que se genera segun perfiles desde db en sql, es decir; el perfil 1 es admin y por lo tanto tiene acceso total, perfil 2 es de menor jerarquia etc. pues bueno he logrado que se me muestren los menu y submenu con el sig codigo:

    //en este datareader cargo los menus padres

    cn.Open();
                string menu = ("Select distinct NombreMnu from menu a inner join accesos b on(a.id_menu=b.id_menu)inner join usuario c on(b.id_perfil=c.id_perfil) where c.id_usuario='"+frmLogin.id_usuario+"'");
                SqlCommand cmd = new SqlCommand(menu, cn);
                SqlDataReader drmenu = cmd.ExecuteReader();
                while (drmenu.Read())
                {
                    menuStrip1.Items.Add(drmenu["NombreMnu"].ToString());
                }

    //en este cargo los submenus

    cn2.Open();
                menu = "select  nombreop from opcionesmnu a inner join accesos b on(a.id_opciones=b.id_opciones) inner join usuario c on(b.id_perfil=c.id_perfil) where id_usuario='"+frmLogin.id_usuario+"'and b.id_menu='2'";
                SqlCommand cmdsubmenu = new SqlCommand(menu, cn2);
                SqlDataReader drsubmenu = cmdsubmenu.ExecuteReader();
                while (drsubmenu.Read())
                    {
                    (menuStrip1.Items[0] as ToolStripMenuItem).DropDownItems.Add(drsubmenu["NombreOp"].ToString());
                    
                    
                    }
    como ven los menus submenus los asocio con el index correspondiente al padre y su id_menu, muestra todo bien como debe de ser de acuerdo a la tabla de accesos como le he llamado donde defino el perfil,id_menu y id_opcion del submenu. el problema esque no puedo llamar los formularios en cada opcion de submenu. Talvez sea algo sencillo para algunos pero la verdad esque ya me atore aqui.

    Gracias!! espero me aya explicado bien ya que apenas empiezo en c#.

    miércoles, 19 de diciembre de 2012 9:57

Respuestas

  • el problema esque no puedo llamar los formularios en cada opcion de submenu.

    cuando creas el menu no veo en ningun lado que asignes algun evento

    ademas porque programas todo en una sola linea, eso a veces parece bueno pero es un desastre para poder encontrar problemas

      ToolStripMenuItem itemmenu = menuStrip1.Items[0] as ToolStripMenuItem;
    
      ToolStripItem stripitem =  itemmenu.DropDownItems.Add(drsubmenu["NombreOp"].ToString());
    
      stripitem.Click += stripitem_Click;

    o sea la idea es que al item que agregas le definas el evento click

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 19 de diciembre de 2012 12:05

Todas las respuestas

  • el problema esque no puedo llamar los formularios en cada opcion de submenu.

    cuando creas el menu no veo en ningun lado que asignes algun evento

    ademas porque programas todo en una sola linea, eso a veces parece bueno pero es un desastre para poder encontrar problemas

      ToolStripMenuItem itemmenu = menuStrip1.Items[0] as ToolStripMenuItem;
    
      ToolStripItem stripitem =  itemmenu.DropDownItems.Add(drsubmenu["NombreOp"].ToString());
    
      stripitem.Click += stripitem_Click;

    o sea la idea es que al item que agregas le definas el evento click

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 19 de diciembre de 2012 12:05
  • Gracias Leandro, si efectivamente falta definir el evento, aunque ya habia hecho eso y despues de varias pruebas lo quite dado que me daba el error de "stripitem_Click; no se encuentra en el contexto actual"(sera algun using?) y tienes razon tratare de no juntar toda la instrauccion en una sola linea.
    jueves, 20 de diciembre de 2012 11:12