none
Cómo recorrer los botones de un control ToolStrip RRS feed

  • Pregunta

  • Sé que es con For each pero cuál sería el código. Quiero recorrer cada botón para cambiar sus propiedades, un pequeño ejemplo porfa.
    miércoles, 20 de enero de 2016 8:15

Respuestas

  • Hola, gracias, me sirvió, y cómo obtedría el índice de uno de los button para saber en qué posicion está dentro de la barra?

    Se podría poner un contador, pero creo que debe haber alguna propiedad que devuelva esa información.

     En realidad la forma más sencilla de tener el índice del elemento dentro del ToolStrip es efectivamente utilizando un contador, los elemento ToolStripItem no tienen una propiedad que devuelva su posición dentro de la colección:

            For index = 0 To toolStrip1.Items.Count - 1
                Dim button As ToolStripButton = TryCast(toolStrip1.Items(index), ToolStripButton)
                If button IsNot Nothing Then
                    ' Tratamiento del botón
                End If
            Next
    


    Otra preguntita qué hace exactamente TryCast en:

    Dim button As ToolStripButton = TryCast(item, ToolStripButton)

    Un ToolStrip contiene elementos ToolStripItem. Estos elementos pueden ser de diferentes tipos ToolStripButton, ToolStripDropDown, ToolStripSeparator, ...

    El TryCast intenta convertir el elemento ToolStripItem a un ToolStripButton. Si el elemento es realmente un ToolStripButton éste queda referenciado en la variable button, si el elemento es de otro tipo la variable button queda con Nothing.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 21 de enero de 2016 15:26
    jueves, 21 de enero de 2016 6:26

Todas las respuestas

  • Hola James,

    si se trata de elementos ToolStripButton colocados directamente en la barra de herramientas puedes recorrerlos con un For Each:

            For Each item As ToolStripItem In toolStrip1.Items
                Dim button As ToolStripButton = TryCast(item, ToolStripButton)
                If button IsNot Nothing Then
                    ' Tratamiento del botón
                End If
            Next


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    miércoles, 20 de enero de 2016 8:47
  • Hola, gracias, me sirvió, y cómo obtedría el índice de uno de los button para saber en qué posicion está dentro de la barra?

    Se podría poner un contador, pero creo que debe haber alguna propiedad que devuelva esa información.

    ---------------------------------------

    Otra preguntita qué hace exactamente TryCast en:

    Dim button As ToolStripButton = TryCast(item, ToolStripButton)

    • Editado James-2016 jueves, 21 de enero de 2016 1:59
    jueves, 21 de enero de 2016 1:51
  • Hola, gracias, me sirvió, y cómo obtedría el índice de uno de los button para saber en qué posicion está dentro de la barra?

    Se podría poner un contador, pero creo que debe haber alguna propiedad que devuelva esa información.

     En realidad la forma más sencilla de tener el índice del elemento dentro del ToolStrip es efectivamente utilizando un contador, los elemento ToolStripItem no tienen una propiedad que devuelva su posición dentro de la colección:

            For index = 0 To toolStrip1.Items.Count - 1
                Dim button As ToolStripButton = TryCast(toolStrip1.Items(index), ToolStripButton)
                If button IsNot Nothing Then
                    ' Tratamiento del botón
                End If
            Next
    


    Otra preguntita qué hace exactamente TryCast en:

    Dim button As ToolStripButton = TryCast(item, ToolStripButton)

    Un ToolStrip contiene elementos ToolStripItem. Estos elementos pueden ser de diferentes tipos ToolStripButton, ToolStripDropDown, ToolStripSeparator, ...

    El TryCast intenta convertir el elemento ToolStripItem a un ToolStripButton. Si el elemento es realmente un ToolStripButton éste queda referenciado en la variable button, si el elemento es de otro tipo la variable button queda con Nothing.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 jueves, 21 de enero de 2016 15:26
    jueves, 21 de enero de 2016 6:26
  • Gracias, me quedó claro lo del TryCast.
    jueves, 21 de enero de 2016 15:27