在我的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;
有人可以帮忙吗?
答案 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
。