ControlsCount

15/03/2005 - 01:37 por Irak Rubio | Informe spam
Hola otra vez, Tambien tengo el siguiente problema:
Resulta que quierohacer un ciclo en un formulario para que me devuelva todos
los controles que tiene, pero unicamente me devuelve los controles que NO se
encuentran contenidos en algun otro control contenedor (panel, frame, etc.),
entonces tengo que hacer un montonal de talacha para poder obtener todos los
controles. Mi pregunta es si existe alguna forma de enumerar los controles
independientemente de los controles que los contengan?, pero que sean de un
formulario "x" ya que usando reflexion me tope con un titipuchal de clases
que ni al caso.

Lo que yo hago es esto:
Dim Obj as Object
for each Obj in myForm
? obj.Name
next
pero no me trae todos los controles... ¿Como le hago?
Gracias :-)
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
15/03/2005 - 04:27 | Informe spam
Cada control tiene su coleccion de controles hijos. Debes enumerar en forma
recursiva esas colecciones para obtener todos los controles del formulario:

Private Sub EnumerarControles(ByVal controlPadre As Control)

With controlPadre.Controls

For i As Integer = 0 To .Count - 1

Console.WriteLine(.Item(i).Name)

EnumerarControles(.Item(i))

Next

End With

End Sub

Y comienzas la enumeracion por el formulario:

EnumerarControles(Me) ' Enumero todos los controles de este formulario

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C

Todos somos muy ignorantes. Lo que ocurre es que no todos
ignoramos las mismas cosas.
Albert Einstein

Preguntas similares