首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

System.ComponentModel.Win32Exception,PictureBox对图形尺寸的限制是多少?

2014-01-28 
在窗口中放一个PictureBox控件,试着设置其Size属性,大了就出错(比如宽30000,高10000)。如果你是在运行的时候

在窗口中放一个PictureBox控件,试着设置其Size属性,大了就出错(比如宽30000,高10000)。如果你是在运行的时候动态设置(或调入图形自动设置),肯定出错,而且你根本无法用Try来捕捉这个错误(System.ComponentModel.Win32Exception)。

程序无法继续,做出的程序不实用,一显示大图就出问题。

外国人也提了这个问题http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=521147&SiteID=1。不过他以为是WMF文件的问题,其实与图形无关,是PictureBox的问题,显然是在其内部的Paint事件中对内存申请出了问题(System.Windows.Forms.DibGraphicsBufferManager.CreateComptiableDIB那里)

我用的是VS2003,不知道有没有朋友能否用VS2005试验一下,要是VS2005不出问题,我就换了。
 

------解决方法--------------------------------------------------------
用vs2005试了,如lz所述。
------解决方法--------------------------------------------------------
看来的确如此,不过问题应该在于控件的Image对象,直接建立一个超大尺寸的Bitmap也会出错。

但我不明白的是lz为什么要建立如此大的PictureBox,现在任何显示设备的分辨率也不过一两千点,对超大图像应该分块动态装载显示于一个适于屏幕大小的PictureBox内。难道只是为图方便而想一次加载吗?
------解决方法--------------------------------------------------------
呵呵也许是电子显微镜下的图像。

自己做个类型吧,继承Image的标准接口,但是内部是把图像用一组小图像拼起来。

        

热点排行