在C#中根据随机数选择一个对象

时间:2013-10-23 00:30:05

标签: c# random

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

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。这是通过单击按钮完成的,因此随机数介于1和3之间。

我尝试申请Choosing random places in C#,但我无法让它发挥作用,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

创建一个PictureBox

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

并在选择随机选项时使用它:

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

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

您将PictureBox变量分配给picBox,因此您可以更改背景:

picBox.BackColor = Color.White;

答案 1 :(得分: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];