程序中有一个部分需要做到图片的热点,我的方法是向需要热点的位置上贴我重写的Label,大概一张热点图里有10个20个不等的热点.问题在于,当我在程序中反复操作,使显示的热点图重复出现多次后,把这个窗体hide,之后在show的时候,会很长时间才显示出来.我怀疑是内存方面的原因,但是在程序中做了很多控制也不好用.再有,热点图是在picturebox上显示的,热点的label就贴在picturebox上.
解决方案 »
- ORA-12154: TNS: 无法解析指定的连接标识符?
- stream.ReadLine和stream.ReadToEnd有什么不同?
- |zyciis| 如何在windows 中的任意地方 按了键盘的[F10] 就能掉用我的WinForm程序的一个按钮事件
- 请教高手visual studio2005如何连接Oracle数据库
- c#中的反射机制
- 成员类如何访问拥有它的类的其它成员变量
- 好郁闷的问题:我添加WebBrowser控件到工具箱,为什么在工具箱中找不到?
- 如何把两个textbox无缝连接
- 囚犯问题
- 请问我错在哪里?
- 求助:请给一个vs.net 2005 Beta2的下载地址,谢谢!
- 我用vs2003设置断点调试asp.net错在哪啊?谢谢!
我再描述一下:大体上就是左边一个treeview,点击某个节点时,右边的窗口显示一个图片,这个图片上有一些点需要相应鼠标点击,和点击treeview节点的效果是一样的,这个被点击的点我重写了一个label,把需要保存的信息放到里边,这样只要在重写的label里做鼠标响应的事件操作就可以了.但是,每一个热点我都需要new一个label 然后在放到picturebox的相应位置,这样,在反复的更改图片的时候,我怀疑会产生很多垃圾,或者是别的什么,反正速度会越来越慢.
Jim3(Jim) 能不能说说你是怎么实现的?
我做了一个,刚刚打开就要20M内存,
查资料,dispose()没有太大用,
null我也看了,还是不行,
最后再GC.Collect();
还是一样啊,看不到内存有丝毫减少,
我也想知道怎么办啊?
1,dot net 中,大量使用控件确实速度非常慢,我的做法是用一张图片作为底图,每次将这张底图画在一个新图片上,然后在新图片上用GDI+画出热点(热点可以用另一张小图片),很方便。这样可以用到GDI+的双缓冲区,无论图多么复杂,对速度影响不大。2,因为UI的操作很慢,而判断的运算很频繁,因此尤其要注意数据与UI的分离,比如,对热点与鼠标关系的判断用独立的矩阵而不要直接读取图片上的内容,等等
,先做一张底图片上,图片上面做好要连接的具体有那些功能,然后用GDI做出
与功能个数一样多的长方形的格子,长方形的格子做好热点,然后把事先做好的图片
作为GDI的底图,浏览时好象速度不慢,但是有个问题,如果要传参数就不能实现