コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }