如何编码设置可以使得这 12 个 picturebox 的 image 每次都是随机生成 4 组 3 个一样的素材
时间: 2024-05-01 11:16:24 浏览: 47
以下是一个可能的解决方案:
1. 创建一个包含 12 个 PictureBox 控件的窗体。
2. 在窗体的 Form.Load 事件中编写代码,以生成随机图片并设置 PictureBox 控件的 Image 属性。
3. 生成随机图片时,可以使用一个数组来存储素材,然后随机生成数组索引,以获取 3 个一样的素材。
4. 另外,可以使用 Random 类来生成随机数,以确保每次生成的随机图片都是不同的。
以下是示例代码:
```
private Random rand = new Random();
private Image[] images = new Image[] {
Properties.Resources.Image1, Properties.Resources.Image2, Properties.Resources.Image3,
Properties.Resources.Image4, Properties.Resources.Image5, Properties.Resources.Image6 };
private PictureBox[] pictureBoxes;
private void Form1_Load(object sender, EventArgs e)
{
// 获取所有 PictureBox 控件
pictureBoxes = Controls.OfType<PictureBox>().ToArray();
// 生成随机图片
GenerateRandomImages();
}
private void GenerateRandomImages()
{
// 生成 4 组 3 个一样的素材
for (int i = 0; i < 4; i++)
{
// 随机生成 3 个不同的索引
int[] indexes = GetRandomIndexes(3);
// 获取素材并设置 PictureBox 控件的 Image 属性
for (int j = 0; j < 3; j++)
{
pictureBoxes[i * 3 + j].Image = images[indexes[j]];
}
}
}
private int[] GetRandomIndexes(int count)
{
// 生成 count 个不同的随机索引
int[] indexes = new int[count];
for (int i = 0; i < count; i++)
{
int index;
do
{
index = rand.Next(images.Length);
} while (indexes.Contains(index));
indexes[i] = index;
}
return indexes;
}
```
在上面的代码中,我们首先在窗体的 Form.Load 事件中获取了所有 PictureBox 控件,并将它们存储在一个数组中。然后在 GenerateRandomImages 方法中,我们生成了 4 组 3 个一样的素材,并将它们设置为 PictureBox 控件的 Image 属性。
在 GetRandomIndexes 方法中,我们使用 Random 类来生成随机数,并使用一个数组来存储已经生成的随机索引,以确保生成的索引都是不同的。最后,我们返回这些随机索引,并用它们来获取素材。
阅读全文
相关推荐


















