//private Dictionary<string, NBGIS.PluginEngine.IDockableWindowDef> m_DockableWindowCol = null; public MainGIS() { InitializeComponent(); //为TOC设置伙伴控件,与MapControl关联 this.axTOCControl.SetBuddyControl(this.axMapControl.Object); //从控件中得到相应接口的对象 m_MapControl = axMapControl.Object as ESRI.ArcGIS.Controls.IMapControlDefault; m_PageLayoutControl = axPageLayoutControl.Object as ESRI.ArcGIS.Controls.IPageLayoutControlDefault; m_TOCControl = axTOCControl.Object as ESRI.ArcGIS.Controls.ITOCControlDefault; //初始化数据集对象 m_DataSet = new DataSet(); //初始化主框架对象 m_Application = new NBGIS.PluginEngine.Application(); m_Application.StatusBar = this.StatusBar; m_Application.MapControl = m_MapControl; m_Application.PageLayoutControl = m_PageLayoutControl; m_Application.MainPlatform = this; m_Application.Caption = this.Text; m_Application.Visible = this.Visible; m_Application.CurrentTool = null; m_Application.MainDataSet = this.m_DataSet; m_Application.Map = m_MapControl.Map; //让MapControl与PageLayoutControl保持同步 m_ControlsSynchronizer = new ControlsSynchronizer(m_MapControl, m_PageLayoutControl); m_ControlsSynchronizer.BindControls(true); m_ControlsSynchronizer.AddFrameworkControl(axTOCControl.Object); }
public void BindControls(ESRI.ArcGIS.Controls.IMapControlDefault mapControl, ESRI.ArcGIS.Controls.IPageLayoutControlDefault pageLayoutControl, bool activeMapFirst) { if (mapControl == null || pageLayoutControl == null) { throw new Exception("ControlsSynchronizer::BindControls:/r/nMapControl or PageLayoutControl is not initialized."); } m_mapControl = MapControl; m_pageLayoutControl = pageLayoutControl; this.BindControls(activeMapFirst); }
/// <summary> /// 当前版本我们确定可以检查的有更新修编数据、工作库、现势库,分别存在的可能性有:三种同时存在,二种,一种等。 /// 规定:检查时,只能选择一种进行,即如果工作库和现势库同时存在,那么须选择一个进行检查,因些,将地图上拥有的图层库体列出来 /// </summary> /// <param name="map"></param> /// <returns></returns> private ArrayList ControlState(ESRI.ArcGIS.Controls.IMapControlDefault map) { ArrayList list = new ArrayList(); //用来存当前可被查询的库体有那些 int Count = map.LayerCount; //总图层数 for (int n = 0; n < Count; n++) { ILayer layer = map.Map.get_Layer(n); string LayerName = layer.Name;//层名 if (LayerName == "更新修编数据" || LayerName == "工作库数据" || LayerName == "现势库数据" && layer is IGroupLayer) { list.Add(LayerName); } } return(list); }
public ControlsSynchronizer(ESRI.ArcGIS.Controls.IMapControlDefault mapControl, ESRI.ArcGIS.Controls.IPageLayoutControlDefault pageLayoutControl) : this() { m_mapControl = mapControl; m_pageLayoutControl = pageLayoutControl; }