4

問題がありますList<Image>

    List<Image> _Images = new List<Image>();
    int currIndex = 0;

    private void btnAdd_Click(object sender, EventArgs e)
    {
        using (OpenFileDialog dialog = new OpenFileDialog())
        {
            dialog.Filter = "All Images|*.jpg;*.jpeg;*.png;*.bmp;*.gif";
            if (dialog.ShowDialog() == DialogResult.Cancel) 
                return;
            _Images.Add(Image.FromFile(dialog.FileName));
            currIndex = _Images.Count - 1;
            picBox.Image = _Images[currIndex];
        }
    }

    private void btnNext_Click(object sender, EventArgs e)
    {
        if (currIndex + 1 >= _Images.Count)
            return;
        picBox.Image = _Images[++currIndex];
    }

    private void btnBack_Click(object sender, EventArgs e)
    {
        if (currIndex - 1 < 0)
            return;
        picBox.Image = _Images[--currIndex]; 
    }

btnBack_Clickそのリストに2つの画像を追加した後、 [戻る]ボタンを押すとこの例外が発生しました。Parameter is not valid.
最初に画像を追加したときに機能picBox.Image = _Images[currIndex];し、後でインデックスから画像を取得しようとすると、その例外が発生します。

注: ImageListは使用しませんでした。これは、ご存知のとおり、すべての画像で一定のImageSizeがあるためです。

だから私はそれをどのように機能させるのでしょうか?

更新: 私がに変更し
たとき、それは今働いたList<Image>List<Stream>

picBox.Image = Image.FromStream(_Images[--currIndex]); 
4

1 に答える 1

1

に変更List<Image>しますList<Stream>

picBox.Image = Image.FromStream(_Images[--currIndex]);

その後、それは動作します。

于 2012-05-25T11:50:04.173 に答える