C# 为什么我会在图片框中得到白色背景的大红色X,而不是动画gif?
我在硬盘上检查了动画gif的创建,并在internet explorer中打开了它,它工作了 所以我不明白为什么我得到这个白色和大x红色 我使用了断点,到目前为止没有得到任何错误 此类中动画gif的实际创建是以下行号175:C# 为什么我会在图片框中得到白色背景的大红色X,而不是动画gif?,c#,C#,我在硬盘上检查了动画gif的创建,并在internet explorer中打开了它,它工作了 所以我不明白为什么我得到这个白色和大x红色 我使用了断点,到目前为止没有得到任何错误 此类中动画gif的实际创建是以下行号175: unfreez.MakeGIF(myGifList, previewFileName, 8, true); 并且动画gif是真实存在和创建的。在第210行中,我调用将动画gif加载到pictureBox的函数: pictureBoxImage(previewFileNam
unfreez.MakeGIF(myGifList, previewFileName, 8, true);
并且动画gif是真实存在和创建的。在第210行中,我调用将动画gif加载到pictureBox的函数:
pictureBoxImage(previewFileName);
这是pictureBoxImage函数,我在其中使用了断点,它没有显示任何错误:
public void pictureBoxImage(string pbImage)
{
Image img2 = null;
try
{
using (img = Image.FromFile(pbImage))
{
//get the old image thats loaded from the _memSt memorystream
//and dispose it
Image i = this.pictureBox1.Image;
this.pictureBox1.Image = null;
if (i != null)
i.Dispose();
//grab the old stream
MemoryStream m = _memSt;
//save the new image to this stream
_memSt = new MemoryStream();
img.Save(_memSt, System.Drawing.Imaging.ImageFormat.Gif);
if (m != null)
m.Dispose();
//create our image to display
img2 = Image.FromStream(_memSt);
}
if (img2 != null)
pictureBox1.Image = img2;
//label2.Text = numberOfFiles.ToString();
//label6.Text = nameOfStartFile.ToString();
//label4.Text = nameOfEndFile.ToString();
//File.Delete(pbImage);
}
catch (Exception err)
{
Logger.Write("Animation Error >>> " + err);
}
}
不知道为什么?红色x和白色背景
我没有把全班都复制到这里,但如果需要的话,我会复制到这里,但是动画gif制作得很好,并且在internet explorer上运行,所以课程正常,但是图片盒上的显示由于某种原因不起作用。肖恩·哈格里夫斯(Shawn Hargreaves)对“大红X of doom”(厄运)有一个出色、简洁的描述。我发现它在处理WinForm组件突然显示红色“X”的一般情况下非常有用 总之:
- 这是由控件在
事件中抛出异常引起的OnPaint
- 一旦抛出该控件,该控件将继续显示红色X,并跳过在绘制时触发。
- 要进行调试,请将调试器设置为捕获公共语言运行时异常,然后执行您通常执行的任何操作以获取红色X。调试器将在发生错误的地方停止,从而允许您进行调查,并希望找到防止错误发生的方法