Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/12/2010, 10:06
corsaliv
 
Fecha de Ingreso: enero-2009
Mensajes: 17
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Cargar menu en treeview

Bueno, encontre una solución a mi problema pero como no todo es bueno, no me sale jerarquicamente. alguien puede ayudarme.
aca mi código.


Private Sub LlenaMenu()

trwAcceso.Nodes.Clear()
trwAcceso.Nodes.Add("0", "Ninguno")

Dim Nodx As TreeNode
Dim Smenu As String

Nodx = New TreeNode("Todos")
Nodx.Name = "1"

For Each mnuItem As ToolStripMenuItem In MDIPrincipal.MenuStrip.Items
Smenu = Replace(mnuItem.Text, "&", "", 1, Len(mnuItem.Text))
If mnuItem.DropDownItems.Count > 0 Then
Nodx = RecorrerSubmenu(mnuItem.DropDownItems, Nodx)
End If
Nodx.Nodes.Add(mnuItem.Name, Smenu)
Next
trwAcceso.Nodes.Add(Nodx)
End Sub

Private Function RecorrerSubmenu(ByVal oSubmenuItems As ToolStripItemCollection, ByVal nodo As TreeNode) As TreeNode
Dim NomMenu As String
Dim cantNodo As Integer
cantNodo = oSubmenuItems.Count
Dim oSubitem As Object
For i As Integer = 0 To cantNodo - 1
oSubitem = oSubmenuItems(i)
If oSubitem.GetType Is GetType(ToolStripMenuItem) Then
If oSubitem.DropDownItems.Count > 0 Then
Return RecorrerSubmenu(oSubitem.DropDownItems, nodo)
Else
NomMenu = Replace(oSubitem.Text, "&", "", 1, Len(oSubitem.Text))
nodo.Nodes.Add(oSubitem.Name, NomMenu)
End If
End If
Next
Return nodo
End Function