private void DockTabChanged(object sender, DockTabChangeEventArgs e) { // Sync caption of the bar with the currently selected dock tab Bar bar = sender as Bar; if (bar == null || e.NewTab == null) { return; } bar.Text = e.NewTab.Text; }
private void BarHistory_DockTabChange(object sender, DockTabChangeEventArgs e) { DockContainerItem dockItemHistoryData = e.NewTab as DockContainerItem; if (dockItemHistoryData.Control.Controls.Count != 0) { return; } if (LayerList.Count == 0) { return; } frmArcgisMapControl newFrm = new frmArcgisMapControl(); for (int j = LayerList.Count - 1; j >= 0; j--) { IFeatureLayer layTemp = LayerList[j] as IFeatureLayer; IFeatureLayer pFeatureLayer = new FeatureLayerClass(); if (layTemp.FeatureClass.FeatureType == esriFeatureType.esriFTAnnotation) { pFeatureLayer = new FDOGraphicsLayerClass(); } else { (pFeatureLayer as IGeoFeatureLayer).Renderer = (layTemp as IGeoFeatureLayer).Renderer; } pFeatureLayer.FeatureClass = layTemp.FeatureClass; pFeatureLayer.Name = (layTemp.FeatureClass as IDataset).Name; IFeatureLayerDefinition featLayDefRes = null; if (m_Sel) { int fdIndex = layTemp.FeatureClass.Fields.FindField("SourceOID"); if (fdIndex == -1) { continue; } IFeatureLayerDefinition featLayDefTemp = layTemp as IFeatureLayerDefinition; IEnumIDs pEnumIDs = featLayDefTemp.DefinitionSelectionSet.IDs; int ID = pEnumIDs.Next(); StringBuilder sb = new StringBuilder(); while (ID != -1) { IFeature pFeat = layTemp.FeatureClass.GetFeature(ID); if (sb.Length != 0) { sb.Append(","); } sb.Append(pFeat.get_Value(fdIndex).ToString()); ID = pEnumIDs.Next(); } IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.WhereClause = "SourceOID in (" + sb.ToString() + ")"; IFeatureSelection featSel = pFeatureLayer as IFeatureSelection; featSel.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultNew, false); featSel.SelectionChanged(); IFeatureLayerDefinition featLayDef = pFeatureLayer as IFeatureLayerDefinition; IFeatureLayer selFeatLay = featLayDef.CreateSelectionLayer(pFeatureLayer.Name, true, "", ""); IGeoFeatureLayer pGeoFeatureLayer = layTemp as IGeoFeatureLayer; if (pGeoFeatureLayer != null) { (selFeatLay as IGeoFeatureLayer).Renderer = pGeoFeatureLayer.Renderer; } newFrm.ArcGisMapControl.Map.AddLayer(selFeatLay); featLayDefRes = selFeatLay as IFeatureLayerDefinition; } else { newFrm.ArcGisMapControl.Map.AddLayer(pFeatureLayer); featLayDefRes = pFeatureLayer as IFeatureLayerDefinition; } featLayDefRes.DefinitionExpression = "FromDate<='" + dockItemHistoryData.Text + "' and ToDate>'" + dockItemHistoryData.Text + "'"; } newFrm.ArcGisMapControl.ActiveView.Extent = ArcGisMapControl.ActiveView.Extent; newFrm.ArcGisMapControl.Refresh(); newFrm.ArcGisMapControl.Dock = DockStyle.Fill; dockItemHistoryData.Control.Controls.Add(newFrm.ArcGisMapControl); LstArcGisMapControl.Add(newFrm.ArcGisMapControl); }