C# 将不同的图像加载到不同的PictureBox中

C# 将不同的图像加载到不同的PictureBox中,c#,text-files,picturebox,C#,Text Files,Picturebox,我有这个问题。我有一个有4个图片框的表单,当表单加载时,我希望这4个图片框加载4个不同的图像,形成一个文本文件。我是这样做的: optionOne.Image = new Bitmap(questionOne.getFoto(rand)); string name = pictureBox1.Name; optionOne.Image = new Bitmap(questionOne.getFoto(Convert.ToInt32(name[name.Length - 1]))

我有这个问题。我有一个有4个图片框的表单,当表单加载时,我希望这4个图片框加载4个不同的图像,形成一个文本文件。我是这样做的:

        optionOne.Image = new Bitmap(questionOne.getFoto(rand));
string name = pictureBox1.Name;
optionOne.Image = new Bitmap(questionOne.getFoto(Convert.ToInt32(name[name.Length - 1])));
但是,如果我对所有m个图片框使用相同的代码行,只需将optionOne更改为optionTwo(我的第二个图片框),例如,它只显示相同的图片

我从这样的文本文件中获取图片

      public string getFoto(int number)
    {
        stream = File.OpenText("Fotodd.txt");
        string[] fotos;
        string line = stream.ReadLine();
        fotos = line.Split('|');
        return fotos[number];
    }
我在文本文件中这样写:

    1.jpg | 2.jpg | 3.jpg | ...
那么,如何用文本文件将不同的图像加载到这些不同的PictureBox中呢

int fotoCounter = 1;
public string getFoto(int number)
    {
        string line;
        using (var sr = new StreamReader("Fotodd.txt"))
        {
            line = sr.ReadLine();
        }
        string[] fotos;
        fotos = line.Split('|');
        return fotos[number *  fotoCounter - 1].Trim(); // String.Trim() removes whitespaces
    }
这样称呼它:

        optionOne.Image = new Bitmap(questionOne.getFoto(rand));
string name = pictureBox1.Name;
optionOne.Image = new Bitmap(questionOne.getFoto(Convert.ToInt32(name[name.Length - 1])));
name变量用于获取pictureBox控件的编号;显然,您必须使其更具动态性,因为控件并不总是pictureBox1。如果您需要一些帮助,请提供之前的代码。 更新完所有4个
PictureBox
控件后,增加
fotoCounter
。 我不明白为什么数组索引-1不起作用。该数组使用基于0的索引,这意味着如果要获取第一张图片(1.jpg),它实际上是fotos[0]

方法2:

string name = (PictureBox)Control.Name;
string number = Convert.ToInt32(name[name.Length - 1]) * fotoCounter;
string file = number + ".jpg";

数字1不起作用,它会给我错误(不正常)。但当我使用数字+1时,它就起作用了。但现在的问题仍然是,我的4个图片框显示的是相同的图像。但是他们现在显示的不是1.jpg,而是2.jpg,然后删除
number+1
。兰德来自哪里?每次都不一样吗?当我删除它时,会出现错误。是的,optionOne,optionTwo。。。那些是我的画框,毫无意义。您最初有
fotos[number]
,它运行得很好,是吗?另外,您是否确保每次执行该行代码时,
rand
都是不同的?是的,然后它就工作了。不,可能不是,你知道我如何做到这一点吗?这可能是一个愚蠢的问题,但当你说你使用的是同一行代码时,你是否每次都将相同的参数传递给
getFoto()
?是的,这可能就是为什么我所有的PictureBox都有相同的图像。如何使pictureBox1显示1.jpg,picturebox2显示2.jpg?或者更好的是显示randim图像?请参阅在给定范围内生成随机数的步骤。