C# &引用;加载ImageList未成功";发生异常

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.ImageS‌​tream"))); 例外情况: System.Reflection.TargetInvocationException:已引发异常 通过调用的目标。--> System.InvalidOperationExcepti

在加载ImageStream时,我对下面的语句有异议

this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageS‌​tream"))); 
例外情况:

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的一部分。