C# &引用;加载ImageList未成功";发生异常
在加载ImageStream时,我对下面的语句有异议C# &引用;加载ImageList未成功";发生异常,c#,.net,winforms,visual-studio-2010,runtime-error,C#,.net,Winforms,Visual Studio 2010,Runtime Error,在加载ImageStream时,我对下面的语句有异议 this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); 例外情况: System.Reflection.TargetInvocationException:已引发异常 通过调用的目标。--> System.InvalidOperationExcepti
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
例外情况:
System.Reflection.TargetInvocationException:已引发异常
通过调用的目标。-->
System.InvalidOperationException:未加载ImageList
成功
当我浏览并看到ImageStream对象时,它是空的。它也抛出了上面与“mscorelib”相关的异常
如果您有任何建议和意见,我们将不胜感激我不明白您为什么要使用ImageStream 我更喜欢使用
HIMAGELIST ImageList_Create(
int cx,
int cy,
UINT flags,
int cInitial,
int cGrow
);
然后,您可以在加载之前分配图像 很抱歉底部的代码太难看了,但我是一个基于结果的程序员,现在必须让事情顺利进行 我在InitializeComponent()上遇到了一个运行时错误的紧急情况;它失败了,我的winforms应用程序是一个空白屏幕 通过对大量代码的逐步分析,该调用似乎: this.imageList1.ImageStream=((System.Windows.Forms.ImageListStreamer)(resources.GetObject(“imageList1.ImageS), 在designer.cs中,生成文件失败 设计师没有办法解决这个问题。在紧急情况下,我只是在initializeComponent()调用之前手动创建图像列表 我确信这与winform的复杂性和它在VisualStudioIDE中的设计器生成有关,但不能证明这一点,因为我现在需要结果 因此,如果您将图像列表从表单中移除,请将图像添加为“嵌入式资源”,然后手动加载图像列表。我“认为”设计者实际上并没有嵌入资源
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");
请告诉我,你想做什么?这段代码是winforms designer在
InitializeComponents()
中生成的(请参阅)。如果form1.resx中没有“imageList1.ImageStream”
,则会出现异常。此问题是关于C代码的。ImageList_Create是Windows API的一部分。