Crear un menustrip con código en vb.net

Estoy realizando un nuevo programita pero me tope con un problemilla, quiero crear un menustrip pero con códigos, llamando datos desde una base de datos el código esta así en lo siguiente:

Dim ms As New MenuStrip()
Dim sqlmenus As New SqlDataAdapter("SELECT * FROM config_regmenuconfig INNER JOIN config_regniveles2 on " & _
"config_regmenuconfig.idmenu = config_regniveles2.idmenu WHERE config_regniveles2.idnivel='" & frmconidnivel & _
"'And config_regniveles2.estado='" & "T" & "'And config_regmenuconfig.estado='" & "T" & "'", cn)
reconectar()
Dim sdme As New DataSet
Dim sdme2 As New DataSet
sqlmenus.Fill(sdme, "config_regniveles2")
sqlmenus.Fill(sdme2, "config_regmenuconfig")
If sdme.Tables("config_regniveles2").Rows.Count = 0 Or sdme2.Tables("config_regmenuconfig").Rows.Count = 0 Then
MsgBox("No hay datos configurados con el nivel y el menú de las aplicaciones", vbCritical, "Error de configuración")
End
Else
Dim m As Integer
For m = 0 To sdme.Tables("config_regniveles2").Rows.Count - 1 And sdme2.Tables("config_regmenuconfig").Rows.Count - 1
Dim windowMenu As New ToolStripMenuItem(sdme.Tables("config_regniveles2").Rows(m)("descripcion").ToString)
'Dim windowNewMenu As New ToolStripMenuItem((sdme.Tables("config_regniveles2"). Rows(m)("idmenu"). ToString), Nothing, New EventHandler(AddressOf windowNewMenu_Click))
windowMenu.DropDownItems.Add(windowNewMenu)
CType(windowMenu.DropDown, ToolStripDropDownMenu).ShowImageMargin = False
CType(windowMenu.DropDown, ToolStripDropDownMenu).ShowCheckMargin = True
ms.Items.Add(windowMenu)
ms.Dock = DockStyle.Top
Me.MainMenuStrip = ms
Me.Controls.Add(ms)
Next
End If

Todo sale bien cuando me crea el menu, pero en el submenú no se como hacerle me pueden ayudar

2 Respuestas

Respuesta

Como yo lo hago.

Primero oculto todos los items del menu.

Luego hago mi sql buscando las opciones habilitadas que tiene el usuario, en un campo de la tabla donde tengo las opciones guardo el nombre del menu

Luego recooro los items del menu preguntando si es igual al nombre que tengo en la tabla.

En estas función cargo las opciones que tiene habilitada el usuario y recorro los items principales del menu

Private Function Carga_Menu()
Dim oSubmenuItems As ToolStripItemCollection

For Each MiDataRows As DataRow In cSeguri_Menu.Lista(2, 0, 0, 0, 0)
For Each oOpcionMenu As ToolStripMenuItem In Me.MenPrincipal.Items
If MiDataRows("men_modu").ToString <> Nothing Then
If oOpcionMenu.Name = MiDataRows("men_modu") Then
If oOpcionMenu.DropDownItems.Count > 0 Then
If MiDataRows("men_sub_modu").ToString <> Nothing Then
Me.RecorrerSubmenu(oOpcionMenu.DropDownItems, MiDataRows("men_sub_modu").ToString, MiDataRows("nom_btn"))
End If
End If
End If
End If
Next
Next
End Function

En esta función recorro los submenus de cada item principal y les cambio es estado a visible

Private Sub RecorrerSubmenu(ByVal oSubmenuItems As ToolStripItemCollection, ByVal NomSub As String, ByVal xBoton As String)
For Each oSubitem As ToolStripItem In oSubmenuItems
If oSubitem.GetType Is GetType(ToolStripMenuItem) Then
If oSubitem.Name = NomSub Then
CType(oSubitem, ToolStripMenuItem).Visible = True
End If
End If
Next
End Sub

Respuesta

Disculpa no manejo visual basic

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas