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. 展开
fr.axMapControl1.Map.LayerCount 和fr.axMapControl1.Map.get_Layer(i)里面的值都为0.但是在axMapControl1下的窗口内代码获取的值就不是0. 展开
1个回答
展开全部
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已经释放了所有没有数据了吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询