0

我想使用这样的字符串值

Random rnd = new Random();
int x= rnd.Next(1, 10);
string ime = "pictureBox" + x.ToString();
ime.BackColor = Color.CornflowerBlue;

但这不起作用

4

3 回答 3

2

你真的不想使用这样的字符串。您想获得一个具有该名称的控件并像这样使用它。您可以按名称获取控件,如下所示:

var pictureBox = myForm.Controls[ime];
于 2014-09-29T05:35:33.017 回答
1

以下代码应该适合您,

Random rnd = new Random();
int x= rnd.Next(1, 10);
string ime = "pictureBox" + x.ToString();
((PictureBox)frm.Controls.Find(ime ,true)[0]).BackColor = Color.CornflowerBlue;
于 2014-09-29T05:39:30.743 回答
0

不要生成随机名称并使用它来查找具有该名称的图片框,而是直接选择一个随机图片框:

Random rnd = new Random();
var pictureBoxes = frm.Controls.OfType<PictureBox>().ToArray();
var randomPictureBox = pictureBoxes[rnd.Next(pictureBoxes.Length)];

randomPictureBox.BackColor = Color.CornflowerBlue;
于 2014-09-29T05:56:44.757 回答