private void advTree_NodeClick(object sender, DevComponents.AdvTree.TreeNodeMouseEventArgs e) { try { IFeature pfeature = advTree.SelectedNode.Tag as IFeature; if (pfeature != null) { m_dataSourceGrid.Clear(); for (int i = 0; i < pfeature.Fields.FieldCount; i++) { if (pfeature.Fields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry) { string strGeometryType = ""; if (pfeature.FeatureType == esriFeatureType.esriFTSimple) { switch (pfeature.Shape.GeometryType) { case esriGeometryType.esriGeometryPoint: strGeometryType = "点"; break; case esriGeometryType.esriGeometryPolyline: strGeometryType = "线"; break; case esriGeometryType.esriGeometryPolygon: strGeometryType = "多边形"; break; } } else if (pfeature.FeatureType == esriFeatureType.esriFTAnnotation) { strGeometryType = "注记"; } if (string.IsNullOrEmpty(strGeometryType)) { strGeometryType = pfeature.Shape.GeometryType.ToString(); } m_dataSourceGrid.Rows.Add(new object[] { pfeature.Fields.get_Field(i).AliasName, strGeometryType }); } else { m_dataSourceGrid.Rows.Add(new object[] { pfeature.Fields.get_Field(i).AliasName, pfeature.get_Value(i) }); } } ModDBOperator.FlashFeature(pfeature, m_pMapControl); } } catch { } }
private void advTree_NodeDoubleClick(object sender, DevComponents.AdvTree.TreeNodeMouseEventArgs e) { try { IFeature pfeature = advTree.SelectedNode.Tag as IFeature; if (pfeature != null) { SysCommon.Gis.ModGisPub.ZoomToFeature(m_pMapControl, pfeature); Application.DoEvents(); ModDBOperator.FlashFeature(pfeature, m_pMapControl); //m_pMapControl.FlashShape(pfeature.Shape, 2, 500, null); } } catch { } }
//默认选择第一个要素节点 并进行闪烁 private void DefaultSelNde() { Application.DoEvents(); for (int i = 0; i < this.advTree.Nodes.Count; i++) { if (!this.advTree.Nodes[i].HasChildNodes) { continue; } IFeature pFea = this.advTree.Nodes[i].Nodes[0].Tag as IFeature; if (pFea != null) { this.advTree.Nodes[i].IsSelectionVisible = true; ModDBOperator.FlashFeature(pFea.Shape, m_pMapControl.ActiveView, 100); break; } } }