Principales respuestas
Llamar formulario desde menu dinamico.

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#.
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
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 -
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.