private bool SelectFeatures() { try { string strTemp = (string)this.cboFields.SelectedItem; string strFieldAliasName = strTemp;//.Substring(1, strTemp.Length - 2); string strFieldName = m_FieldTable[strFieldAliasName].ToString(); IFeatureClass pFtCls = m_FeatureLayer.FeatureClass; int nFieldIndex = pFtCls.Fields.FindField(strFieldName); string strWhereClause = ""; if (pFtCls.Fields.get_Field(nFieldIndex).Type == esriFieldType.esriFieldTypeString) { strWhereClause = strFieldName + " = '" + (string)this.cboFieldsValue.SelectedItem + "'"; } else { strWhereClause = strFieldName + " =" + (string)this.cboFieldsValue.SelectedItem; } if (m_FeatureLayer == null) { return(false); } IQueryFilter _queryFilter; IFeatureSelection _featureSelection; _featureSelection = m_FeatureLayer as IFeatureSelection; _queryFilter = new QueryFilterClass(); _queryFilter.SubFields = "*"; _queryFilter.WhereClause = strWhereClause; m_Map.ClearSelection(); _featureSelection.SelectFeatures(_queryFilter, esriSelectionResultEnum.esriSelectionResultNew, false); if (_featureSelection.SelectionSet.Count == 0) { XtraMessageBox.Show("没有符合查询条件的要素!", "提示", MessageBoxButtons.OK); return(false); } if (m_FeatureLayer.Visible == false) { m_FeatureLayer.Visible = true; object obj = MapOperAPI.GetLayerParent((IBasicMap)m_Map, (ILayer)m_FeatureLayer); if (obj is ICompositeLayer) { ILayer pParentLayer = (ILayer)obj; pParentLayer.Visible = true; } } m_activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } catch (Exception ex) { XtraMessageBox.Show("没有匹配的查询结果,请重新设置查询条件!", "提示"); return(false); } return(true); }