0

我想随机更改图片框控件的背景颜色。我所拥有的是

Random Rand = new Random();
int randNum = Rand.Next(1,3);
string boxName = "pic" + randNum.ToString();
PictureBox picBox = new PictureBox();
picBox.Name = boxName;

picBox.BackColor = Color.White;

它不起作用。我知道这picBox.Name = boxName实际上并没有设置picBox到那个图片框,但它是唯一不会给出一些智能感知错误的代码。

我有 3 个图片框,pic1、pic2 和 pic3。这是通过单击按钮完成的,因此 num 介于 1 和 3 之间。

我尝试在 C# 中应用选择随机位置,但我无法让它工作,有人可以帮忙吗?

4

2 回答 2

4

创建一个数组PictureBox

var boxes = new [] { pic1, pic2, pic3 };

并在选择随机一个时使用它:

var picBox = boxes[Rand.Next(0, 3)];

注意:您必须从 0(包括)到 3(不包括)绘制,因为数组是从 0 开始索引的。

比你随机PictureBox分配给你的picBox变量,所以你可以改变背景:

picBox.BackColor = Color.White;
于 2013-10-23T00:32:35.187 回答
4

为什么不简单地将颜色存储在数组中并随机更改背景颜色?无需重新创建图片框。

Color[] colours = new Color[] { Color.White, Color.Black, Color.Blue, Color.Red }; //etc
Random Rand = new Random();
int randNum = Rand.Next(0, colours.Length);

然后分配颜色:

picBox.BackColor = colours[randNum];
于 2013-10-23T00:34:09.880 回答