controles dentro de contenedores

25/01/2006 - 18:33 por Imac_man | Informe spam
saludos amigos,

tengo un programa que debe listar los controles colocados sobre un
formulario.pero me encuentro con el problema de que si agrego un
contenedor como un panel, y dentro coloco algunos objetos estos, no me los
lee, por estar dentro del contenedor.asi que mi duda es :
¿Como puedo leer los controles sin importar el contenedor al que
pertenezcan?

gracias de antemano.
 

Leer las respuestas

#1 Jesús López
26/01/2006 - 09:41 | Informe spam
Los controles en un formulario forman una estructura en árbol, y la mejor
forma de recorrer estructuras en árbol es usar métodos recursivos.

Por ejemplo en un formulario podríamos tener los siguientes métodos:

Sub RellenarControles(ByVal Control As Control, ByVal ListaControles As
ArrayList)
For Each ControlHijo In Control.Controls
ListaControles.Add(ControlHijo)
RellenarControles(ControlHijo, ListaControles)
Next
End Sub

Sub MostrarControles()
Dim ListaControles As New ArrayList()
RellenarControles(Me, ListaControles)
For Each control As Control In ListaControles
Debug.WriteLine(control.Name)
Next
End Sub

RellenarControles es un método recursivo que rellena un array list con todos
los controles que contiene aunque no los contenga directamente

MostrarControles usa RellenarControles para obtener la lista de controles
que están contenidos en el formulario y muestra sus nombres por la ventana
"Output".


Saludos:

Jesús López
MVP

Preguntas similares