Recorrer los objetos de un form

05/01/2008 - 05:39 por Josias | Informe spam
Como puedo recorrer todos los objetos de un tipo especifico que estan
contenidos en un form windows?

Hice una prueba con la coleccion Controls pero no me incluye algunos objetos
como un DataSet, por ejemplo.
Hay algo mas general para recorrer los controles?

Josias

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
05/01/2008 - 09:23 | Informe spam
"Josias" <josias> wrote in message
news:%
Mostrar la cita
Lo más general para recorrer los controles es una rutina recursiva que
recorra la colección Controls, y por cada uno de los controles de esa
colección a su vez vuelva a recorrer sus Controls, y asi sucesivamente. Lo
que no salga de esta manera, o no es un Control, o no pertenece a ese Form.
Por ejemplo, un DataSet no es un control, por eso no se obtiene mediante
este mecanismo.
#2 Josias
05/01/2008 - 18:06 | Informe spam
Mostrar la cita
Y no existirá alguna forma de obtener esos objetos que no sean controles ?

Gracias.

Josias
#3 Alberto Poblacion
06/01/2008 - 11:29 | Informe spam
"Josias" <josias> wrote in message
news:
Mostrar la cita
Depende de dónde tengas esos objetos. Por ejemplo, si sabes que los has
declarado como variables de clase en el formulario, puedes enumerarlos por
Reflexión usando GetFields.

Un ejemplo: Supongamos que has declarado un dataset en la clase del
formulario:

class MiFormulario: Form
{
private DataSet ds;
...
private void Form_Load(...)
{
ds = new DataSet();
...
}
}

Entonces, para enumerar todas las variables de clase (entre las que se
encontrará "ds"), puedes hacer esto:

using System.Reflection;
...
Type t = typeof(MiFormulario);
FieldInfo[] fia =
t.GetFields(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance);
foreach (FieldInfo fi in fia)
{
//fi.FieldType te da el tipo (por ejemplo, DataSet)
//fi.Name te da el nombre ("ds")
//etc.
//Para evaluarlo: valor=fi.GetValue(instanciaDelForm);
}
#4 Josias
06/01/2008 - 12:29 | Informe spam
Muchas gracias, Alberto.


"Alberto Poblacion"
escribió en el mensaje news:%23fUG$
Mostrar la cita
Ads by Google
Search Busqueda sugerida