Varias imágenes y labels en un for

Iniciado por sexto, 1 Marzo 2011, 19:08 PM

0 Miembros y 1 Visitante están viendo este tema.

sexto

A ver si me entendéis que es un poco complicado de explicar.

Tengo un formulario en C# (Windows Forms), en el tengo varios Labels y PictureBox que relleno mediante código (accediendo a una BD MySQL).
Lo que quiero hacer es, en vez de poner en el código:
Código (csharp) [Seleccionar]

Label1.Text = tal;
Label2.Text = tal;
Label3.Text = tal;
etc

hacerlo de tal forma que con un for me los rellene todos, algo parecido a:
Código (csharp) [Seleccionar]

for (int i = 0; i < 3; i++)
{
    label[i].Text = tal;
}

Ya se que no es con esos corchetes, pero es para que se me entienda...

Es posible?

Muchas gracias.

[D4N93R]

Hola,

Una simple búsqueda en google: el primer resultado: http://www.dreamincode.net/code/snippet1238.htm

Recuerda buscar tanto dentro como fuera del foro antes de preguntar.

Un saludo!

sexto

Muchas gracias pero...

No lo entiendo xD

seba123neo

Cita de: sexto en  1 Marzo 2011, 20:08 PM
No lo entiendo xD

miralo bien, lo que hace el codigo es recorrer los controles que hay en el formulario, y setearle algun valor segun sea el tipo del control (textbox, combo..etc.)

vos solo necesitas label, lo que el codigo seria algo asi:

Código (csharp) [Seleccionar]
public static void ClearForm(System.Windows.Forms.Control parent)
{
    foreach (System.Windows.Forms.Control ctrControl in parent.Controls)
    {
         if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.Label)))
         {
              ((System.Windows.Forms.TextBox)ctrControl).Text = "aca va el dato";
         }
     }
}


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

sexto

Yo concretamente lo quiero en labels y en imágenes, pero
1º Hay varios labels a parte de los que quiero cambiar.
2º En cada label/imagen quiero un dato distinto, que lo coge de una base de datos.

sexto

Ya lo he conseguido, con un array de PictureBox.

Muchas gracias

sexto

Para el que le interese, he conseguido hacerlo con bastante menos código.
Los PictureBox tienen que llamarse Portada0, Portada1, Portada2, etc

for (int i = 0; i < 6; i++)
            {
                Portada[i] = new System.Windows.Forms.PictureBox();
                imagen = "URL" + list[1][i];
                StreamImagen = getUrl(imagen);
                Control[] miscontrols = panel1.Controls.Find("Portada" + i.ToString(), true);
                if (miscontrols.Length > 0)
                {
                    ((PictureBox)miscontrols[0]).Image = System.Drawing.Image.FromStream(StreamImagen);
                }
            }