Arcgis Engine二次开发c#在一个新的窗口下实现数据编辑功能

点击开始编辑之后,下面的代码,获取不到fr.axMapControl1.Map.LayerCount图层数量,也获取不到fr.axMapControl1.Map.get_... 点击开始编辑之后,下面的代码,获取不到fr.axMapControl1.Map.LayerCount 图层数量,也获取不到fr.axMapControl1.Map.get_Layer(i);中的图层。fr是有axMapControl1控件的窗口 for (int i = 0; i <= fr.axMapControl1.Map.LayerCount - 1; i++)//取添加的每一个图层 { pLayer = fr.axMapControl1.Map.get_Layer(i); if (pLayer is IFeatureLayer)//开始编辑 { IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer; pFeatureLayer.Selectable = false; IDataset dataset = pFeatureLayer.FeatureClass as IDataset; IWorkspace pWorkspace = dataset.Workspace; if (!workSpacesArrayList.Contains(pWorkspace)) { workSpacesArrayList.Add(pWorkspace); } featLayerCount++; } }
fr.axMapControl1.Map.LayerCount 和fr.axMapControl1.Map.get_Layer(i)里面的值都为0.但是在axMapControl1下的窗口内代码获取的值就不是0.
展开
 我来答
百度网友7332b13a9
2015-05-20 · TA获得超过132个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:132万
展开全部
1你的MapControl控件上确实显示的有图层吗?你确定加载图层时没有出错? 2在外面加try catch看有没有异常; 3 一般AE开发用接口获取属性,方法(没什么区别,你可以试试): IMapControl3 pmapcontrol=fr.axMapControl1.object as IMapControl3; int iCount=pmapcontrol.LayerCount
更多追问追答
追问
加载图层没有错,也没有异常。用你的方法获取也一样,pmap.LayerCount里面的值为0.但是在mapcontrol所在的窗体下,使用这个方法就能获取pmap.LayerCount里面的值,不是0.
追答
fr窗体是模态的么? 你不是写在窗体里面,如果是模态的,那么肯定是在关闭窗体之后才会有这段代码的吧?!关闭窗体之后在执行这段代码你的控件mapcontrol已经释放了所有没有数据了吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式