我有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
:Parameter is not valid.
为什么当我第一次添加图像时它起作用picBox.Image = _Images[currIndex];
然后当我稍后尝试从索引获取图像时,它给了我这个例外?
注意:我没有使用ImageList,因为据我所知,它具有ImageSize,对于所有图像都是恒定的。
那么我该如何让它工作呢?
更新:
当我将List<Image>
更改为List<Stream>
时,它现在有效
picBox.Image = Image.FromStream(_Images[--currIndex]);
将List<Image>
更改为List<Stream>
picBox.Image = Image.FromStream(_Images[--currIndex]);
然后它就会起作用。