Cambiar múltiples propiedades de control a la vez

Necesito cambiar un montón de propiedades en una gran cantidad de controles. Tengo problemas para que funcione. ¿Estoy en el camino correcto?

foreach(var c in this.Controls.OfType<Label>())
            {
                c.Text = "test";
            }

Lo que sucede es que var c solo crea un nuevo objeto y no edita el existente. ¿Cómo puedo acceder al control real?

preguntado el 01 de julio de 12 a las 23:07

Simplemente está recorriendo una colección de controles, 'c' es efectivamente una referencia a ese control, está editando el control existente. ¿Qué tecnología de presentación estás usando? WinForms, WPF o ASP.Net? -

Estoy haciendo una aplicación de Windows -

es una pregunta común; vea esta respuesta, por ejemplo: stackoverflow.com/a/1467980/1073107 or stackoverflow.com/questions/1788490/… - Supongo que aquí te refieres a Windows Forms. -

stackoverflow.com/a/1788757/1073107 también es muy, muy útil, y debería hacer exactamente lo que necesita. -

Ok, lo tengo funcionando en mi código. En realidad, fue causado por un objeto nulo en otro lugar que me hizo sospechar que no estaba funcionando... Lo siento. -

2 Respuestas

usted puede probar esto

 List<Control> controls = Controls.OfType<Label>().Cast<Control>().ToList();
  foreach (Control m in controls)
  {
      m.Text = "test";

  }

Respondido 01 Jul 12, 23:07

Intente lo siguiente:

foreach(var c in this.Controls)
{
    var label = c as Label;
    if(label != null) label.Text = "test";
}

Respondido 01 Jul 12, 23:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.