李禧亮
路人甲
路人甲
  • 注册日期2012-03-08
  • 发帖数8
  • QQ
  • 铜币143枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1770回复:2

属性字段

楼主#
更多 发布于:2012-04-15 16:05
<p>arcgis engine 开发。在进行空间查询的时候,把图层的属性字段加载到combobox中去。</p>
喜欢0 评分0
happyGISer
路人甲
路人甲
  • 注册日期2011-09-02
  • 发帖数59
  • QQ
  • 铜币300枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
1楼#
发布于:2012-04-15 22:02
 
[br]1 public List<String> getList(IFeatureClass fc) {[br]2             IFields2 fildsList = fc.Fields;[br]3             [br]4             for (int i = 0; i < fildsList.Count; i++) { [br]5                 [br]6                IField fild =   fildsList.get_Field;[br]7                comb.imtems.add(fild.AliasName);[br]8             }[br]9             [br]10         }
<br/>就这个思路,伪代码<br/>
举报 回复(0) 喜欢(0)     评分
happyGISer
路人甲
路人甲
  • 注册日期2011-09-02
  • 发帖数59
  • QQ
  • 铜币300枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
2楼#
发布于:2012-04-18 16:55
 
[br]1 namespace demo01[br]2 {[br]3     //其中,layersCombo是当前地图所有图层列表[br]4     //fieldCombo是当前选中图层的属性字段列表[br]5 [br]6     public partial class Form1 : Office2007RibbonForm[br]7     {[br]8         public Form1()[br]9         {[br]10             InitializeComponent();[br]11         }[br]12 [br]13         private void Form1_Load(object sender, EventArgs e)[br]14         {[br]15             axTOCControl1.SetBuddyControl(axMapControl1);[br]16             axToolbarControl1.SetBuddyControl(axMapControl1);[br]17         }[br]18 [br]19         //初始化图层列表框方法[br]20         public void initialLayerCombo()[br]21         {[br]22             List<string> list = getLayerList();[br]23             MessageBoxEx.Show(list.Count.ToString());[br]24             string[] strList = list.ToArray();[br]25             layersCombo.Items.AddRange(strList);[br]26         }[br]27 [br]28         //获得图层列表方法[br]29         public List<string> getLayerList() [br]30         {[br]31             List<string> list = new List<string>();[br]32             int layerCount = axMapControl1.LayerCount;[br]33             for (int i=0; i<layerCount; i++)[br]34             {[br]35                 ILayer layer = axMapControl1.get_Layer(i);[br]36                 IFeatureLayer featureLayer = layer as IGeoFeatureLayer;[br]37                 list.Add(featureLayer.FeatureClass.AliasName); [br]38             }[br]39             return list;[br]40         }[br]41 [br]42         //获得选中图层(要素类)的字段列表方法[br]43         public List<string> getFeatureclassFieldsList(IFeatureClass featureClass)[br]44         {[br]45             List<string> list = new List<string>();[br]46             IFields fieldList = featureClass.Fields;[br]47             for (int i = 0; i < fieldList.FieldCount; i++ )[br]48             {[br]49                 list.Add(fieldList.get_Field(i).AliasName);[br]50             }[br]51             return list;[br]52         }[br]53 [br]54         //图层列表框选择项改变事件[br]55         private void layersCombo_SelectedIndexChanged(object sender, EventArgs e)[br]56         {[br]57             int index = layersCombo.SelectedIndex;[br]58             IFeatureLayer layer = axMapControl1.get_Layer(index) as IFeatureLayer;[br]59             List<string> list = getFeatureclassFieldsList(layer.FeatureClass);[br]60             fieldsCombo.Items.AddRange(list.ToArray());[br]61             [br]62         }[br]63 [br]64         //地图改变事件[br]65         private void axMapControl1_OnMapReplaced(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMapReplacedEvent e)[br]66         {[br]67             initialLayerCombo();[br]68         }[br]69 [br]70       [br]71     }[br]72 }[br]73
<br/>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部