Detectar los comboboxes

30/12/2008 - 20:05 por Gilbert | Informe spam
Hice una clase de comboboxes. Quiero que al ponerlos en un form me los
acumule en una lista porque luego necesito recorrerlos en varios lugares del
form.

Se que podria recorrer la propiedad Controls y preguntar si son de esa clase
pero quisiera mejor tenerlos en una lista donde ellos mismos se vayan
registrando, la pregunta es:

Como puedo hacer para "registrar" cada combobox en la lista? En que lugar
pongo el codigo para que se agreguen automaticamente a la lista de
comboboxes?
 

Leer las respuestas

#1 SoftJaén
31/12/2008 - 12:37 | Informe spam
"Gilbert" preguntó:

Como puedo hacer para "registrar" cada combobox en la lista? En que
lugar pongo el codigo para que se agreguen automaticamente a la lista
de comboboxes?



Puedes utilizar una lista genérica «List<T>» donde podrás añadir los
controles ComboBox para posteriormente recorrer sus elementos.

Por ejemplo, a nivel del formulario declararías la lista genérica:

private List<ComboBox> listaComboBox;

En el evento «Load» del formulario, mientras recorres la colección de
controles existentes, añadirías los controles ComboBox a la lista genérica:

private void Form1_Load(object sender, EventArgs e)
{
listaComboBox = new List<ComboBox>();

foreach (Control ctrl in this.Controls)
{
if (ctrl is ComboBox)
{
listaComboBox.Add((ComboBox)ctrl);
}
}
}

Y cuando desees recorrer la lista de controles ComboBox, ejecutarías lo
siguiente:

foreach (ComboBox cb in listaComboBox)
{
MessageBox.Show(cb.Name);
}


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares