首页 / 浏览问题 / 组件GIS / 问题详情
mapcontrol事件清空问题
57EXP 2019年08月22日

如何清空上一次操作中的地图几何选择事件

我在另一个操作写清除的操作,为什么还是会去触发上一次操作中的地图几何选择事件呢

问题关闭原因: 无需解答

1个回答

您好,注销事件的方式就是您上面截图的“-=”,我建议你写一个小demo,测试注销事件是否还不起作用,还是有问题的话,可以把demo发我,我这边帮你查看下。
5,985EXP 2019年08月22日
还是不可以,怎么把demo发给你
上传一下百度云,然后在这里发我下载地址即可
你是不是弄错了,咋直接把我们的范例给我了
没有,我就是在范例里改的

我这边在你提供的代码里面没有找到注销事件的代码,麻烦说下代码写哪个类,大概第多少行

173行
我在几何添加里面,写了一个事例。其他没有
在添加线里用了demo类
你标题不是说的对象选择事件无法清除吗,到底是什么意思啊?173行是对象添加的事件啊

173不是清除么,哪里是添加了

不管是选择事件还是添加事件都无法清除,我只是随便举了个例子,你把选择事件清除也清除不了
我了解你的想法了,你这代码是先注销一个事件,再注册一个事件,那么最后结果是注册了一个事件,如果你反过来写(调换下顺序),先注册一个事件,再注销掉一个事件,最终结果就是把这个事件注销掉了。

所以你把173和174行换一下顺序就好了。
呃呃呃呃呃,我想注销的是上一次操作的事件,如果反过来写那岂不是把这次操作的事件给注销了;

我的意思是,我再绘制点时添加了一个几何添加的事件,然后再绘制线时想把绘制点的几何添加事件注销
那你在绘制线的时候再把事件注销掉了就好了
你没看demo么,我注销了啊,但是注销不掉啊
你说的是173行这个代码?
不是说了我写了一个demo的类么,在添加线里调用了,能不能操作一遍
那你说啥173行,我先看看

请看一下这个类,操作一遍,先添加点,再添加线,会有提示,谢谢

难道不是你自己截图问我的哪里有注销么 你截图的里面就是173行啊,能不能搞清楚
首先问题我找到了,你添加的这个类切换画线时,根本没起作用,断点都没进去,怎么注销

修改如下后可实现你的需求:

1.FormMain.cs类添加引用using SuperMap.UI;

2.FormMain.cs类中comboBoxDrawSelect_SelectedIndexChanged方法中的case 1:判断添加注销事件代码:

m_mapControl.GeometryAdded -= new GeometryEventHandler(m_sampleRun.m_mapControl_GeometryAdded);

3.SampleRun.cs类中,m_mapControl_GeometryAdded方法私有改为公有,即private改为public

其次,你的demo类里面还是

m_mapControl.GeometryAdded -= new GeometryEventHandler(m_mapControl_GeometryAdded);
m_mapControl.GeometryAdded += new GeometryEventHandler(m_mapControl_GeometryAdded);

注销只需要一句代码

m_mapControl.GeometryAdded -= new GeometryEventHandler(m_mapControl_GeometryAdded);

你先按照我给你说的改,看改得出来不,稍后我在把改的demo发你,我们这边工作也不只是负责社区,建议下次有问题沟通清楚一些,并且demo不要直接扔个范例过来,很多多余的代码,看是浪费大家的时间,

我是在图标的点击事件里写的,没在切换里面,所以断点不会进去angry

没有我注销之后不添加咋在这个操作里调用这个事件,服了
那就是你还是注销了又注册了一个,只写注销的代码就行了,另外附上我修改的

链接:https://pan.baidu.com/s/1_a4zyMRauIkU47nHbkMtZg
提取码:0126
你私信我下手机号,我稍后给你回下,沟通下需求,感觉我们需求沟通有误
你好,在吗,问题解决了吗,你标题写的事件不能清除的问题,代码发你了,应该是解决了,还有其它问题,建议私信我电话号沟通后解决哈
...