使用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中断点调试,将会一直得到正确更换后的结果。