[ Foro de C# ]

Manipular objetos dinamicamente

08-Jul-2014 02:02
Adan Lopez
2 Respuestas

Tengo 68 picturebox los cuales dependiendo de condiciones y de lo que obtenga en un string debo cargar cierta imagen,
ejem.
si var = "P0103";
necesito cargar la imagen 03 al picturebox01
o si var = "P1510";
debo cargar la imagen 10 al picturebox15

no se si exista alguna manera para no hacer cientos de case, mi variable me trae solo nombres de picturebox mas la imagen que debo cargar.

había imaginado algo como esto pero pues claro que esto no existe
PictureBox + var.Substring(1,2).Image = Image.FromFile("D:\Imagen\03.JPG");


08-Jul-2014 11:34
Invitado (Caranim)

Puedes crear un array con los 68 PictureBox y las imágenes cargarlas en un ImageList.

Separas la variable en dos subcadenas: Una el índice del PictureBox, la otra el índice de la imagen.

Finalmente cargas la imagen en el PictureBox:

 
ArraydePictures[indicedelPicture].image = Imagelist.images[indicedelaimagen];
 


Espero que te ayude.

Saludos.



08-Jul-2014 17:49
Adan Lopez

Excelente (Caranim), lo pude resolver de la siguiente manera, aunque esto lo hice rapido para un ejemplo y use BorderStyle, despues lo are con Image y con las condiciones, pero ya funciona el arreglo de picturebox que es lo que me apuraba.

 
string var1 = "00";
string var2 = "01";
 
PictureBox[] ArrayPictureBox = new PictureBox[2];
 
ArrayPictureBox [int.Parse(var1)] = pictureBox1;
ArrayPictureBox [int.Parse(var2)] = pictureBox2;
 
ArrayPictureBox [int.Parse(var1)].BorderStyle = BorderStyle.Fixed3D;
ArrayPictureBox [int.Parse(var2)].BorderStyle = BorderStyle.Fixed3D;
 








(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)