阅读:2112回复:2
[求助][求助]AE中 为何我在TOCControl中删除图层后,而鸟瞰控件中的图层没有变化?
为何我在TOCControl中删除或添加图层后,主控件中的图层发生变化,而鸟瞰控件中的图层没有变化?
测试的时候发现当直接添加数据 时,鸟瞰控件中也能添加上数据,再在TOCControl中删除数据,鸟瞰控件中也会删除数据。但如果先打开地图文档 后再添加或删除数据时鸟瞰控件中没有变化!帮助文档中说当移除图层时Map对象会触发此事件: 但我调试了一下,发现当打开地图文档再删除图层没有调用OnItemDeleted方法。 纠结中,求高手们指点指点!…… 具体实现代码如下:在MainFrm中声名了全局变量: IActiveViewEvents_Event pActiveViewEvent; 主窗体加载时添加了如下代码: private void MainFrm_Load(object sender, EventArgs e) { pActiveViewEvent = axMapControl1.Map as IActiveViewEvents_Event; pActiveViewEvent.ItemAdded+= new IActiveViewEvents_ItemAddedEventHandler(this .OnItemAdded ); pActiveViewEvent.ItemDeleted += new IActiveViewEvents_ItemDeletedEventHandler(OnItemDeleted); } OnItemDeleted的实现方法如下: private void OnItemDeleted(object Item) { ILayer pLayer = Item as ILayer; IMap pMap = axMapControl2.Map; pMap.DeleteLayer(pLayer); IActiveView pActiveView = pMap as IActiveView; pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } OnItemAdded的实现方法: void OnItemAdded(object Item) { ILayer pLayer = Item as ILayer; if (pLayer == null) throw new NotImplementedException(); axMapControl2.AddLayer(pLayer); axMapControl2.Refresh(esriViewDrawPhase.esriViewGeography, null, null); } [此贴子已经被作者于2011-09-13 16:43:09编辑过]
|
|
1楼#
发布于:2011-09-13 00:05
编辑了半天没编辑好
|
|
2楼#
发布于:2011-09-13 09:09
<p>使用插入代码工具,或者直接从文档里拷贝有格式的文字,就可以了。</p><p>你的问题是控件和toc没有同步更新?</p>
|
|