Los controles de un form

12/08/2008 - 15:58 por Pedro | Informe spam
Estoy haciendo una clase de form que una de las opciones es que se puedan
recorrer sus controles para hacer determinada accion con ellos.

Vi que puedo recorrer la coleccion Controls del form pero el problema es que
si tengo por ejemplo un Tabcontrol que contiene mas controles no me los
recorre.\

Hay alguna otra coleccion que me de los controles del form sin importar que
esten en un tabcontrol u otro contenedor?

Preguntas similare

Leer las respuestas

#1 RFOG
12/08/2008 - 17:45 | Informe spam
Supongo, y sólo supongo, que podrías hacerlo recursivamente. Es decir,
para cada control que cojas, si es un container y tiene subcontroles,
recorrerlos y así de forma recursiva...

Algo así:

private void RecursivelyFormatForWinXP(Control control)
{
for(int x = 0; x < control.Controls.Count; x++)
{
// If the control derives from ButtonBase,
// set its FlatStyle property to FlatStyle.System.
if(control.Controls[x].GetType().BaseType == typeof(ButtonBase))
{
((ButtonBase)control.Controls[x]).FlatStyle = FlatStyle.System;
}

// If the control holds other controls, iterate through them also.
if(control.Controls.Count > 0)
{
RecursivelyFormatForWinXP(control.Controls[x]);
}
}
}


On Tue, 12 Aug 2008 15:58:45 +0200, Pedro wrote:

Estoy haciendo una clase de form que una de las opciones es que se puedan
recorrer sus controles para hacer determinada accion con ellos.

Vi que puedo recorrer la coleccion Controls del form pero el problema es
que
si tengo por ejemplo un Tabcontrol que contiene mas controles no me los
recorre.\

Hay alguna otra coleccion que me de los controles del form sin importar
que
esten en un tabcontrol u otro contenedor?







Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Enseñar a quien no tiene curiosidad por aprender es como sembrar un campo
sin ararlo.
Respuesta Responder a este mensaje
#2 Napoleon
12/08/2008 - 18:13 | Informe spam
Hola Pedro:
Recursividad como expone el otro compañero, y se te soluciona todo,
:)



"Pedro" wrote:

Estoy haciendo una clase de form que una de las opciones es que se puedan
recorrer sus controles para hacer determinada accion con ellos.

Vi que puedo recorrer la coleccion Controls del form pero el problema es que
si tengo por ejemplo un Tabcontrol que contiene mas controles no me los
recorre.\

Hay alguna otra coleccion que me de los controles del form sin importar que
esten en un tabcontrol u otro contenedor?



Respuesta Responder a este mensaje
#3 Pedro
15/08/2008 - 03:12 | Informe spam
ok gracias
"RFOG" escribió en el mensaje
news:
Supongo, y sólo supongo, que podrías hacerlo recursivamente. Es decir,
para cada control que cojas, si es un container y tiene subcontroles,
recorrerlos y así de forma recursiva...

Algo así:

private void RecursivelyFormatForWinXP(Control control)
{
for(int x = 0; x < control.Controls.Count; x++)
{
// If the control derives from ButtonBase,
// set its FlatStyle property to FlatStyle.System.
if(control.Controls[x].GetType().BaseType == typeof(ButtonBase))
{
((ButtonBase)control.Controls[x]).FlatStyle = FlatStyle.System;
}

// If the control holds other controls, iterate through them also.
if(control.Controls.Count > 0)
{
RecursivelyFormatForWinXP(control.Controls[x]);
}
}
}


On Tue, 12 Aug 2008 15:58:45 +0200, Pedro wrote:

Estoy haciendo una clase de form que una de las opciones es que se puedan
recorrer sus controles para hacer determinada accion con ellos.

Vi que puedo recorrer la coleccion Controls del form pero el problema es
que
si tengo por ejemplo un Tabcontrol que contiene mas controles no me los
recorre.\

Hay alguna otra coleccion que me de los controles del form sin importar
que
esten en un tabcontrol u otro contenedor?







Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Enseñar a quien no tiene curiosidad por aprender es como sembrar un campo
sin ararlo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida