none
Recorrer Menustrip

    Pregunta

  • Quiero mostrar el nombre de los botones de un menustrip en un Datagrid, por lo que estoy intentando usar el siguiente codigo

     Dim valor As String = ""
    
        Private Sub consultaItems()
            For Each miitem As ToolStripMenuItem In frm_Inicio.MenuStrip.Items
                recorrer(miitem)
                valor = valor.TrimEnd(";")
                  Listado_permisos.Rows.Add(valor)
            Next
    
        End Sub
    
    
        Private Sub recorrer(ByVal Oneitem As ToolStripMenuItem)
            For Each otroItem As ToolStripMenuItem In Oneitem.DropDownItems
                valor &= otroItem.Text & ";"
                If otroItem.DropDownItems.Count > 0 Then recorrer(otroItem)
            Next
        End Sub
    
        Private Sub btn_agregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_agregar.Click
            consultaItems()
        End Sub

    Pero consigo lo siguiente en el datagrid

    Estaría muy agradecido de su ayuda

    de ante mano muchas gracias

    jueves, 27 de abril de 2017 2:43

Respuestas

  • Fíjate en que nunca reinicializas la variable "valor", por lo que a cada vuelta del bucle se va haciendo más y más larga. Como la lista es "estrecha", solo ves el principio de la variable, y por eso parece que todas las líneas son iguales. Prueba a poner valor="" dentro del primer For Each.
    jueves, 27 de abril de 2017 6:48

Todas las respuestas

  • Fíjate en que nunca reinicializas la variable "valor", por lo que a cada vuelta del bucle se va haciendo más y más larga. Como la lista es "estrecha", solo ves el principio de la variable, y por eso parece que todas las líneas son iguales. Prueba a poner valor="" dentro del primer For Each.
    jueves, 27 de abril de 2017 6:48
  • Tengo el siguiente formulario 

    Quiero obtener el nombre de los sub menús que ahí aparecen (Iniciar Sesión, Cerrar Cesion, Usuarios, Archivos ) y luego de saber el nombre, quiero mostrarlos en un datagridview, estoy usando el siguiente codigo 

        Dim valor As String = ""
            Private Sub consultaItems()
            For Each miitem As ToolStripMenuItem In frm_Inicio.MenuStrip.Items
                recorrer(miitem)
                valor = valor.TrimEnd(";")
                Listado_permisos.Rows.Add(valor)
            Next
    
        End Sub
    
    
        Private Sub recorrer(ByVal Oneitem As ToolStripMenuItem)
            For Each otroItem As ToolStripMenuItem In Oneitem.DropDownItems
                valor &= otroItem.Text & ";"
                If otroItem.DropDownItems.Count > 0 Then recorrer(otroItem)
            Next
        End Sub
    
        Private Sub btn_agregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_agregar.Click
            consultaItems()
    
        End Sub

    Pero solo consigo el siguiente resultado 

    jueves, 27 de abril de 2017 22:57
  • En que parte pongo eso ??

    jueves, 27 de abril de 2017 22:59
  • En que parte pongo eso ??


            For Each miitem As ToolStripMenuItem In frm_Inicio.MenuStrip.Items
                valor=""
                recorrer(miitem)
    

    viernes, 28 de abril de 2017 6:47