Hay alguna forma de hacer un array de pictureBox en c#? Sé que en visual basic lo hacía, pero no encuentro nada para csharp.
En caso de que no se pueda como podría hacer para que en un picturebox aleatorio me meta una imagen aleatoria?
Ahora lo tengo así
pictureBox1.Image = System.Drawing.Image.FromFile(img[RDM]);
de manera que me mete una imagen aleatoria pero también quiero que lo inserte en un picturebox aleatorio.
MMm.. no se si haya una forma mas directa, pero por ahora se me ocurre algo asi
int elegido = 2; // Aca haces que sea aleatorio, yo puse un ejemplo
int i = 0;
foreach (PictureBox pb in this.Controls) {
if (i == elegido) {
pb.Image = System.Drawing.Image.FromFile(img[RDM]);
break;
}
i++;
}
Con eso deberia funcionar :)
Hola, no se si entendí bien. A ver, tienes varios PictureBox? Y quieres establecerle a un pictureBox aleatorio una imagen aleatória?
Uhm, creo que va algo así:
//Escenario, primero crear varios picturebox en el formulario.
List<PictureBox> pictureBoxList = new List<PictureBox>();
List<Image> imagesList = new List<Image>();
imageList.Add(Image.FromFile("SampleImage1.jpg"));
imageList.Add(Image.FromFile("SampleImage2.jpg"));
imageList.Add(Image.FromFile("SampleImage3.jpg"));
//Con esto metes todos los PB en una lista.
foreach (Control c in this.Controls)
{
if(c is PictureBox)
{
pictureBoxList.Add(c as PictureBox);
}
}
Random rand = new Random();
pictureBoxList[rand.Next(0, pictureBoxList.Count)].Image = imagesList[rand.Next(0, imagesList.Count)];
Esto debería servirte :D
Gracias, ahora ya me funciona. Al final me ha quedado así:
int RDM = 0;
int aleatorio = 0;
string[] img = guardar_cargar.cargar("C:\\imagenes.txt");
List<PictureBox> pictureBoxList = new List<PictureBox>();
foreach (Control c in this.Controls)
{
if (c is PictureBox)
{
pictureBoxList.Add(c as PictureBox);
}
}
for (int i = 0; i < 6; i++)
{
//copia las imagenes aleatoriamente en pircturebox aleatorios
RDM = repeticiones("C:\\imagenes.txt"); //funcion que comprueba que no se repita ningun random
aleatorio = repeticiones_pb(); //funcion que comprueba que no se repita ningun random
pictureBoxList[aleatorio].Image = System.Drawing.Image.FromFile(img[RDM]);
//copia en los pirturebox las imagenes que han tocado antes para hacer la pareja
aleatorio = repeticiones_pb();
pictureBoxList[aleatorio].Image = System.Drawing.Image.FromFile(img[RDM]);
}
El codigo es para hacer un juego de esos que hay cartas tapadas y tienes que acertar parejas.
Ah ok! jeje que bueno que te haya servido.. Un saludo!