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:
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:
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.
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!
Muchas gracias pero...
No lo entiendo xD
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:
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.
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.
Ya lo he conseguido, con un array de PictureBox.
Muchas gracias
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);
}
}