Lista de Controles en un formulario

16/10/2009 - 19:39 por Edilberto Arteaga | Informe spam
Hola a Todos
Tengo un formulario base con una serie de controles (barras de herramientas)
del cual heredan mis demás formularios he creado un método en el que recorro
todos los objetos que estén en el formulario

protected virtual void
VerificarControles(System.Windows.Forms.Control.ControlCollection __obj__,
bool __valor__, string __str__)
{
foreach (Control __oo__ in __obj__)
{
if (__oo__.HasChildren)
VerificarControles(__oo__.Controls, __valor__, __str__);
if (__oo__.Tag != null)
if (__oo__.Tag == __str__)
__oo__.Enabled = __valor__;
}
}

pero nunca me encuentra los objetos dentro de las barras de herramientas ni
en los menus contextuales, puedo ver los grid, textbox, list etc pero no los
mencionados si ven el código por cada control que encuentro verifico si
tiene controles dentro para seguir examinándolo y así llegar al nivel mas
bajo.
 

Leer las respuestas

#1 SoftJaén
17/10/2009 - 12:05 | Informe spam
"Edilberto Arteaga" escribió:

Tengo un formulario base con una serie de controles (barras de
herramientas) del cual heredan mis demás formularios he creado un método
en el que recorro todos los objetos que estén en el formulario

pero nunca me encuentra los objetos dentro de las barras de herramientas
ni en los menus contextuales, puedo ver los grid, textbox, list etc pero
no los mencionados si ven el código por cada control que encuentro
verifico si tiene controles dentro para seguir examinándolo y así llegar
al nivel mas bajo.




Hola, Edilberto:

Si estás utilizando un control del tipo ToolStrip, éste no tiene controles
que deriven de la clase Control, por tanto, no puedes recorrer su colección
Controls, porque no tiene ningún control. Tiene una colección de elementos
ToolStripItem, la cual puedes recorrerla de la siguiente manera:

foreach (ToolStripItem item in this.toolStrip1.Items)
{
// obtenemos el nombre del elemento ToolStripItem.
//
MessageBox.Show(item.Name);

}

La colección Controls la puedes utilizar cuando expresamente se han añadido
controles a dicha colección, como es el caso de los controles que se añaden
a un formulario, pero no es el caso de los elementos existentes en un
control del tipo ToolStrip.

Un saludo

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