2014-03-30 38 views
0

在我的winform應用程序中,我有3個pictureBox,我想將它們添加到列表中。
我試圖添加pictureBox到列表

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

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

我得到的錯誤

「無法將類型 'System.Windows.Forms.Control的[]' 到 'System.Windows.Forms.PictureBox'」

任何人都可以幫忙嗎?

回答

1

問題:Controls.Find()方法返回Control[]陣列

解決方案:您需要訪問控件數組的第一個元素進行投射。科莉PictureBox

替換此:

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

這一點:

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

問題解決了!謝謝 –

+0

@ user3061846:歡迎您:),不要忘記接受其中一個答案 –

0

您可以使用LINQ爲:

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

你的問題是Controls.Find方法返回的控制和你的數組試圖將控制陣列投射到Picturebox