对于底部的丑陋代码感到抱歉,但我是一个基于结果的程序员,必须让事情现在就开始工作。
我在 InitializeComponent() 上遇到了运行时错误;它失败了,我的 winforms 应用程序是一个空白屏幕。
单步执行大量代码似乎是这个调用:
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
在 Designer.cs 中生成文件是失败的地方。
设计师没有办法解决这个问题。在紧急情况下,我只是在调用 initializeComponent() 之前手动创建了图像列表。
我确信这与 winform 的复杂性及其在 Visual Studio IDE 中的设计器生成有关 - 但无法证明这一点,因为我现在需要结果。
因此,如果您从表单中删除图像列表,请将图像添加为“嵌入式资源”,然后手动加载您的图像列表。我“认为”设计师实际上并没有嵌入资源。
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");