我想随机更改图片框控件的背景颜色。我拥有的是
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#,但我无法让它发挥作用,有人可以帮忙吗?
答案 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];