将pictureBox添加到List

时间:2014-03-30 10:22:51

标签: c# winforms list picturebox

在我的winform应用程序中,我有3个pictureBox,我想将它们添加到List中 我试过了

List<PictureBox> pictureBoxList = new List<PictureBox>();  

for (int i = 0; i < 3; i++)  
{ 
 pictureBoxList.Add((PictureBox)Controls.Find("pictureBox" +i, true)); 
}

我收到错误

  

&#34;无法转换类型&#39; System.Windows.Forms.Control []&#39;至   &#39; System.Windows.Forms.PictureBox&#39; &#34;

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

问题: Controls.Find()方法返回Control[]数组

解决方案:您需要访问控件数组的第一个元素,然后将其强制转换回PictureBox

替换它:

pictureBoxList.Add((PictureBox)Controls.Find("pictureBox" +i, true));

有了这个:

pictureBoxList.Add((PictureBox)Controls.Find("pictureBox" +i, true)[0]);

答案 1 :(得分:0)

您可以使用LINQ

var pictureBoxList = this.Controls.OfType<PictureBox>()
            .Where(x => x.Name.StartsWith("pictureBox"))
            .ToList(); 

您的问题是Controls.Find方法返回一个控件数组,并且您正在尝试将控件数组转换为Picturebox