您最好將圖片框存儲在圖片框數組中,而不是字符串數組。
PictureBox[] myPictures = {pictureBox1, pictureBox2, pictureBox3, pictureBox4};
foreach (PictureBox picture in myPictures)
{
picture.Image = <some Image>;
}
如果有把它作爲一個字符串,下面的代碼可以幫助你。請注意,我沒有包含任何錯誤檢查,因爲元素不存在。你可能只是在該部分的數組中獲得一個空元素。您也可以將它包含在try/catch中。
string[] myPicturesString = {"pictureBox1", "pictureBox2", "pictureBox3", "pictureBox4"};
PictureBox[] myPictures = new PictureBox[myPicturesString.Length];
for (int i = 0; i < myPictures.Length; i++)
{
foreach (Control c in this.Controls)
{
if (c.Name == myPicturesString[i])
{
myPictures[i] = (PictureBox) c;
}
}
}
MessageBox.Show(myPictures[1].Name);
我想你會幫助自己大大的未來現在停止和閱讀一些初學者編碼指南和教程。例如,pb_a1等不是特別接受的命名約定。 – MrEdmundo 2011-03-02 09:05:55
@MrEdmundo:我認爲這是一個邏輯問題,而不是編碼風格問題。有許多編碼慣例,它們在某些情況下都是有效的。 – Nick 2011-03-02 09:07:12
@尼克我同意這是一個邏輯問題,這就是爲什麼我沒有把我的評論作爲答案。但我的觀點依然存在。 – MrEdmundo 2011-03-02 09:08:57