我有一个问题是在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名称?
谢谢你的帮助!
答案 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";