如何将字符串作为PictureBox名称?

时间:2014-02-21 06:26:53

标签: c# arrays string picturebox

我有一个问题是在C#中将字符串作为图片框的名称。我的表格中有256个PictureBox。

现在,我有一个字符串数组RanPicture += "Random" + Pic[step1 + 1]; 这个实际上将从文本文件中读取一系列数据。

我想要的是将 RanPicture 设置为PictureBox的名称,以便通过读取一系列字符串数据在指定的PictureBox中显示图片。

例如,现在我的文本文件中的数据为00。其中一个PictureBox是Random00。 所以在这里,RanPicture(字符串)必须与Random00(PictureBox的名称)相同,然后图片将通过以下方式显示在Random00中:

RanPicture.Image = Image.FromFile(Directory.GetCurrentDirectory() + "\\images\\image" + imagePic + ".jpg");

任何人都知道如何将字符串转换为PictureBox名称?

谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

您可以像这样的数组访问控件。然后您可以根据需要轻松更改名称。

PictureBox RanPicture = (PictureBox)this.Controls["PictureBox01"];
RanPicture.Image = Image.FromFile(Directory.GetCurrentDirectory() + "\\images\\image" + imagePic + ".jpg");

答案 1 :(得分:0)

可能是最好的方法,你可以使用以下功能...

private PictureBox getPictureBoxByName(string name)
{
    foreach(object p in this.Controls ){
        if( p.GetType() == typeof(PictureBox) )
            if( ((PictureBox)p).Name == name )
                return (PictureBox)p;
    }
    return new PictureBox(); //OR return null;
}

该函数在给定PictureBox name的情况下返回表单上的string对象。

并改变您的代码,如

getPictureBoxByName(RanPicture).Image = 
Image.FromFile(Directory.GetCurrentDirectory() + 
"\\images\\image" + imagePic + ".jpg");

答案 2 :(得分:0)

首先获取需要设置其名称属性的图片框

PictureBox a = (PictureBox)this.Controls.Find("pictureBox1", true)[0];
//if you have unique names for your picturebox

接下来更改名称属性

a.Name = "newName";