首先,对不起我的英语。
我正在制作一个有大约60个图片盒的程序。 (pictureBox1,pictureBox2,pictureBox3,直到pictureBox60)我有一个包含60个字符串的列表。 (不同图片的网址)
我希望pictureBox1加载列表[0],pictureBox2加载列表[1]等。
但我意识到我无法做到以下几点:
for (int i = 0; i < Bans.Count; i++)
{
this.pictureBox + i = this.Bans[i]; //Can't be done..
}
是否有解决方案不需要我手动设置所有60个盒子?
谢谢!
答案 0 :(得分:1)
如果这是WinForms,您可以使用ControlCollection.Find
按名称获取控件 - 假设您的每个pictureboxN
控件都具有匹配的.Name
属性值。
e.g。
pictureBox23.Name = "pictureBox23";
像这样:
for( int i = 0; i < this.Bans.Count; i++ ) {
String pictureBoxName = "pictureBox" + i.ToString(CultureInfo.InvariantCulture);
Control[] matchingPictureBoxes = this.Controls.Find( pictureBoxName, searchAllChildren: true );
if( matchingPictureBoxes.Length == 1 ) {
PictureBox pictureBox = (PictureBox)controls[0];
pictureBox.Image = this.Bans[i];
}
}