“加载ImageList没有成功”发生异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“加载ImageList没有成功”发生异常相关的知识,希望对你有一定的参考价值。
在加载ImageStream时,我在下面的语句中遇到问题。
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
例外:
System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.InvalidOperationException:加载ImageList没有成功
当我浏览并看到ImageStream对象时,它为null。它抛出了与“mscorelib”相关的上述例外。
任何建议和意见将不胜感激
对不起底部的丑陋代码,但我是一个基于结果的程序员,必须让事情现在正常工作。
我在InitializeComponent()上遇到运行时错误而遇到紧急情况;它失败了,我的winforms应用程序是一个空白屏幕。
单步执行大量代码似乎是这个调用:
this.imageList1.ImageStream =((System.Windows.Forms.ImageListStreamer)(resources.GetObject(“imageList1.ImageS tream”)));
在designer.cs中,generate文件是失败的地方。
没有什么可以解决设计师的问题。在紧急情况下,我只是手动创建图像列表在initializeComponent()调用之前。
我确信它与视觉工作室IDE中的winform及其设计者代的复杂性有关 - 但无法证明它,因为我现在需要结果。
因此,如果您从表单中删除图像列表,请将图像添加为“嵌入资源”,然后手动加载图像列表。我“想”设计师实际上没有嵌入资源。
ilssC = new ImageList();
ilssC.ColorDepth = System.Windows.Forms.ColorDepth.Depth16Bit;
ilssC.ImageSize = new System.Drawing.Size(200, 150);
ilssC.TransparentColor = System.Drawing.Color.Transparent;
Assembly myAssembly = Assembly.GetExecutingAssembly();
Stream myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars00.jpg");
Bitmap bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars00.jpg",bmp);
myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars01a.jpg");
bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars01a.jpg",bmp);
myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars02a.jpg");
bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars02a.jpg", bmp);
myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars03a.jpg");
bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars03a.jpg", bmp);
myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars04a.jpg");
bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars04a.jpg", bmp);
myStream = myAssembly.GetManifestResourceStream("SafeEnv.Resources.ssbars05a.jpg");
bmp = new Bitmap(myStream);
ilssC.Images.Add ("ssbars05a.jpg", bmp);
ilssC.Images.SetKeyName (0, "ssbars00.jpg");
ilssC.Images.SetKeyName (1, "ssbars01a.jpg");
ilssC.Images.SetKeyName (2, "ssbars02a.jpg");
ilssC.Images.SetKeyName (3, "ssbars03a.jpg");
ilssC.Images.SetKeyName (4, "ssbars04a.jpg");
ilssC.Images.SetKeyName (5, "ssbars05a.jpg");
我不明白你为什么使用ImageStream
我更喜欢使用
HIMAGELIST ImageList_Create(
int cx,
int cy,
UINT flags,
int cInitial,
int cGrow
);
然后你可以在加载之前分配你的图像。
以上是关于“加载ImageList没有成功”发生异常的主要内容,如果未能解决你的问题,请参考以下文章