阅读:3242回复:5
如何清除MapControl中的图层啊~~~
小弟初学MapControl,用C#.NET开发(其实.NET也是初学-_-!),最近碰上烦心事儿,清除MapControl图层后咋都不能顺利退出程序,不知哪儿的原因,请DX指教。。。<BR>button1_Click的功能是加载图层文件,我加载的是一个mdb文件(含有多层)。<BR>button2_Click的功能就是删除MapControl控件上显示的图层:<BR>for (int i = 0 ; i < axMapControl1.LayerCount ; i++ )<BR> axMapControl1.DeleteLayer(i) ;<BR>实现起来倒也简单,一个for循环就搞掂了,图层倒是删掉了,可程序退不出来了。再后来干脆用<BR> axMapControl1.ClearLayers();<BR>也没问题,可还是不能自动释放内存。。。。郁闷呐~~~求DX指点~~~~T.T
|
|
1楼#
发布于:2005-05-28 08:46
C++中调试通过了,不知道是不是C#内存托管的问题,那位知道啊???
|
|
2楼#
发布于:2005-06-06 12:09
我想问题不一定在这里
|
|
3楼#
发布于:2005-06-06 13:44
<P>需要在退出程序之前: Aoinitialize.shutdown</P>
|
|
|
4楼#
发布于:2005-06-06 17:34
删除图层后,图层的个数发生了变化,我以前也遇过类似的情况,不过我用的是vb,但我想那并不重要。
|
|
5楼#
发布于:2005-06-11 13:57
<P>Eppla JJ能不能说的再清楚些呢,偶初学呢,不知该在哪里加丫</P>
<P>对了,GISSKY上有DX指点是这么说的:</P> <P>不是没有顺利的图层,而是Arc ENGINE 的一些东西在内存中没有被释放<BR>用如下方法<BR>添加 form_closeing 事件<BR>private sub form_closing(....)<BR>esri.arcgis.utility.comsupport.aouninitialize.shutdown()<BR>end sub</P> <P> </P> <P>看来和Eppla说的一样吧,我回去试试,哭谢~~~~</P> |
|