/// <summary> /// 地图控件与TOC控件的关联操作 /// </summary> /// <param name="tocCtrl">TOC控件</param> /// <param name="mapCtrl">地图控件</param> /// <param name="attributeForm">显示属性表的窗体</param> /// <param name="switchView">将当前标签页设为地图页面</param> public MapCtrlToc(AxTOCControl tocCtrl, AxMapControl mapCtrl, IAttributeForm attributeForm, Action <EViewActionType[]> switchView = null) { MapControl = mapCtrl; TocControl = tocCtrl; TocControl.SetBuddyControl(MapControl); TocControl.OnMouseDown += tocCtrl_OnMouseDown; SwitchView = switchView; AttributeForm = attributeForm; _attributeFormType = AttributeForm.GetType(); Layer2FieldsMenuItems = new Dictionary <string, ToolStripMenuItem[]>(); InintMenuStrip(); }
protected virtual void 打开属性表ToolStripMenuItem_Click(object sender, EventArgs e) { if (SelectedLayer is IFeatureLayer featureLayer && featureLayer.FeatureClass != null) { if (AttributeForm == null || AttributeForm.IsDisposed) { AttributeForm = (IAttributeForm)Activator.CreateInstance(_attributeFormType); } AttributeForm.Show(MapControl); AttributeForm.Activate();//之前已打开,则给予焦点,置顶。 AttributeForm.AttributeCtrl.LoadAttribute(featureLayer as ITable, ((IFeatureLayerDefinition)featureLayer).DefinitionExpression, LayerIndex, _attributeForm_FeatureLocation); } }
/// <summary> /// 地图及其图层/表格树、鹰眼图、导航工具、页面布局视图的组合控件的管理类 /// </summary> /// <param name="mainMapControl">主地图控件</param> /// <param name="eagleMapControl">鹰眼图地图控件</param> /// <param name="tocControl">图层树控件</param> /// <param name="pageLayoutControl">页面布局控件</param> /// <param name="attributeForm"></param> /// <param name="switchView">显示指定的界面视图的操作</param> public MapViewerManager(AxMapControl mainMapControl, AxMapControl eagleMapControl, AxTOCControl tocControl, AxPageLayoutControl pageLayoutControl, IAttributeForm attributeForm, Action <EViewActionType[]> switchView) { SwitchView = switchView; MainMapControl = mainMapControl; DocHelper = new MapCtrlDocument(mainMapControl); TocHelper = new MapCtrlToc(tocControl, mainMapControl, attributeForm, switchView); MenuHelper = new MapCtrlMenu(mainMapControl); EagleMapHelper = new MapCtrlEagleMap(mainMapControl, eagleMapControl); DrawElementHelper = new MapCtrlDrawElement(mainMapControl); PageLayoutHelper = new MapCtrlPageLayoutSyn(mainMapControl, pageLayoutControl); mainMapControl.OnFullExtentUpdated += delegate { mainMapControl.Refresh(); }; //主地图:刷新地图 ((IActiveViewEvents_Event)mainMapControl.Map).ItemAdded += item => //向map/PageLayout中添加数据(图层、表格等)都会触发ItemAdded事件 { if (item is ILayer) { SwitchView(new[] { EViewActionType.MainMap, EViewActionType.LayerToc }); } else if (item is ITable) { SwitchView(new[] { EViewActionType.MainMap, EViewActionType.TableList }); } }; }