![[Imagen: Wtnce9d.png]](https://i.imgur.com/Wtnce9d.png)
Private Sub ColorizeGrid(ctrl As Object)  
 
  Dim o As Object
  Dim sClass As String
 
  sClass = Object.Class(ctrl).Name
  If sClass = "GridView" Or If sClass = "Label" Then ' Si es Gridview o Label cambiamos los colores
    ctrl.Background = Color.lightGray
    ctrl.Foreground = Color.DarkRed
  Endif  
  If Object.Class(ctrl).Exist("Children") And If ctrl.Children.count > 0 Then 'Si es un contenedor, recursivo a sus hijos
    For Each o In ctrl.Children
      ColorizeGrid(o)
    Next
  Endif
 
End![[Imagen: o69uCEs.png]](https://i.imgur.com/o69uCEs.png)
		
	Private Sub ColorizeGrid(ctrl As Object)
  Dim o As Object
  Dim sClass As String
  sClass = Object.Class(ctrl).Name
  If (sClass = "GridView" Or sClass = "Label") And If Not Object.Is(ctrl.Parent, "Usercontrol") Then ' Si es Gridview o Label cambiamos los colores
    ctrl.Background = Color.lightGray
    ctrl.Foreground = Color.DarkRed
  Endif
  If Object.Class(ctrl).Exist("Children") And If ctrl.Children.count > 0 Then 'Si es un contenedor, recursivo a sus hijos
    For Each o In ctrl.Children
      ColorizeGrid(o)
    Next
  Endif
End![[Imagen: BonYzvt.png]](https://i.imgur.com/BonYzvt.png)

...
 If Object.Class(ctrl).Exist("Children") And If ctrl.Children.count > 0 And sClass <> "ListBox" Then 'Si es un contenedor, recursivo a sus hijos
    For Each o In ctrl.Children
      ColorizeGrid(o)
    Next
  Endif
...Cita:¿ Entonces no quieres que se coloreé el ListBox ?.No exactamente: No quiero que se coloree ningún control contenido en un control que no sea un contenedor... no sé si me explico. Listbox contiene un gridview, pero Listbox mismo no es un contenedor de controles "per se".
Cita:Para mi la solución ideal seria dejar un "rastro" ya sea en el Name, en el Group o en el Tag para sean aplicables (o no) al cambio de "skin" del programa.Así no fallas, pero no te vale para cualquier control "normal", que no lleve ese Tag, o Nombre o lo que sea. Además te obliga a, en tiempo de diseño, ir recordando y colocando qué tag debe tener qué control, etc. y yo estoy buscando algo más universal.
[code]![[Imagen: m4MCrqV.png]](https://i.imgur.com/m4MCrqV.png)
![[Imagen: oO4Bua2.png]](https://i.imgur.com/oO4Bua2.png)
Private Sub ColorizeGrid(ctrl As Object)
  Dim o As Object
  Dim sClass As String
  sClass = Object.Class(ctrl).Name
  If sClass = "GridView" Or If sClass = "Label" Then ' Si es Gridview o Label cambiamos los colores
    If Not Object.GetProperty(ctrl, "Colorize") Then Return     ''Nueva propiedad
    ctrl.Background = Color.lightGray
    ctrl.Foreground = Color.DarkRed
  Endif
  If Object.Class(ctrl).Exist("Children") And If ctrl.Children.count > 0 Then 'Si es un contenedor, recursivo a sus hijos
    For Each o In ctrl.Children
      ColorizeGrid(o)
    Next
  Endif
End![[Imagen: 100Hn22.png]](https://i.imgur.com/100Hn22.png)