none
Propiedades de objeto y método "Type Of" RRS feed

  • Pregunta

  • Dado este fragmento de código

    Public sub PintaYColorea
    
    For Each pestaña As TabPage In .tbcClientes.TabPages
                        pestaña.BackColor = cLila
                    pestaña.ForeColor = cBlanco
    
                    For Each elm As Control In pestaña.Controls
                        If TypeOf elm Is GroupBox Then
                            elm.ForeColor = cBlanco
                        End If
    'hasta aquí todo bien
                        If TypeOf elm Is Button Then
    'help ayúdame, en tu amistad he puesto toda mi fé
                            elm.Image = oFunciones.PintarBotones(elm.Image, cAzul)
                        End If
    
    Next
    
    End Sub
    Por lo visto no puedo acceder a la propiedad image ya que el compilador no reconoce el objeto como un botón, o no tiene forma de saberlo si no se lo indico de alguna manera. No acabo de comprender el método TypeOf pero el caso es que si existe alguna manera más expeditiva, directa o manual de acceder a esta propiedad, agradecería que se me indicase. 

    jueves, 18 de febrero de 2016 17:10

Respuestas

  • hola

    el TypeOf solo aplcia para determinar de que tipo es un objeto, pero esto no lo convierte en ese tipo magicamente, para eos debes castearlo

    If TypeOf elm Is Button Then
       Button btn = DirectCast(elm, Button)
       btn.Image = oFunciones.PintarBotones(elm.Image, cAzul)
    End If

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta cmg_84 viernes, 19 de febrero de 2016 10:29
    jueves, 18 de febrero de 2016 17:48

Todas las respuestas

  • hola

    el TypeOf solo aplcia para determinar de que tipo es un objeto, pero esto no lo convierte en ese tipo magicamente, para eos debes castearlo

    If TypeOf elm Is Button Then
       Button btn = DirectCast(elm, Button)
       btn.Image = oFunciones.PintarBotones(elm.Image, cAzul)
    End If

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta cmg_84 viernes, 19 de febrero de 2016 10:29
    jueves, 18 de febrero de 2016 17:48
  • Muchas gracias Leandro, justo lo que necesitaba! He tenido que añadir un If Not IsNothing(btn.Image) porque en casos en que el botón no tenía imagen, saltaba un error. Pero me ha ayudado muchísimo tu aportación. De nuevo gracias!
    viernes, 19 de febrero de 2016 10:31