/// <summary> /// 获取选中图层的字段 /// </summary> private void GetFields() { try { string sLayerName = (string)cboLayers.SelectedItem; IFeatureLayer _featureLayer; IFeatureClass _featureClass = null; IFields _fields; IDataset _dataSet; _featureLayer = (IFeatureLayer)MapOperAPI.GetLayerFromMapByName(m_Map, sLayerName); m_FeatureLayer = _featureLayer; if (_featureLayer != null) { _featureClass = _featureLayer.FeatureClass; } this.cboFields.Properties.Items.Clear(); this.cboFieldsValue.Properties.Items.Clear(); m_FieldTable = new Hashtable(); if (_featureClass != null) { _dataSet = _featureClass as IDataset; _fields = _featureClass.Fields; if (_dataSet.Workspace.Type == esriWorkspaceType.esriFileSystemWorkspace || _dataSet.Workspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) { for (int i = 0; i < _fields.FieldCount; i++) { IField pField = _fields.get_Field(i); if (pField.Type != esriFieldType.esriFieldTypeGeometry && pField.Type != esriFieldType.esriFieldTypeBlob && pField.Type != esriFieldType.esriFieldTypeRaster) { cboFields.Properties.Items.Add(pField.AliasName); m_FieldTable.Add(pField.AliasName, pField.Name); //TreeListNode node = this.treeListFields.AppendNode(new object[] { '[' + _fields.get_Field(i).Name + ']', '[' + _fields.get_Field(i).AliasName + ']' }, null); } } } else if (_dataSet.Workspace.Type == esriWorkspaceType.esriLocalDatabaseWorkspace) { for (int i = 0; i < _fields.FieldCount; i++) { IField pField = _fields.get_Field(i); if (pField.Type != esriFieldType.esriFieldTypeGeometry && pField.Type != esriFieldType.esriFieldTypeBlob && pField.Type != esriFieldType.esriFieldTypeRaster) { if (pField.Name.ToUpper().Contains("OBJECTID") || pField.AliasName.ToLower().Contains("shape")) { continue; } cboFields.Properties.Items.Add(pField.AliasName); m_FieldTable.Add(pField.AliasName, pField.Name); //TreeListNode node = this.treeListFields.AppendNode(new object[] { '[' + _fields.get_Field(i).Name + ']', '[' + _fields.get_Field(i).AliasName + ']' }, null); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }