使用Image类提示内存不足问题

因为需要重绘标题栏的需要,需要更改标题栏的背景图片,有以下语句:

                  

Graphics gs = Graphics.FromHdc(hDC);
Image img
= Image.FromFile(Application.ExecutablePath.Replace(".EXE", ".bmp"));
gs.DrawImage(img,
0, 0);
gs.Dispose();

在VS2005中点击调试运行正常。但是双击生成的.exe文件就提示内存不足,提示语句为上述4行的第二行。开始以为是不是图片太大了,所以压缩了图片。结果还是不行。

于是更改了第二行语句为

Image img = Image.FromFile(Application.StartupPath + @"\CardIssuing.bmp");
或者
Image img = Image.FromFile(Application.ExecutablePath.Replace(".exe", ".bmp"));

此时不再有内存不足的提示。

发现VS2005会把.EXE和.exe作为同样的处理,而在双击的时候,.EXE是区分大小写的,所以无法更换成.bmp,所以一直提示内存不足,因为加载的是可执行文件。SharpDevelop 4.0对此更换会做大小写区分。

如果只是在VS2005中断点调试,将会一直得到正确更换后的结果。

posted @ 2011-06-09 14:33  Lesterwang  阅读(5193)  评论(1编辑  收藏  举报