阅读:1977回复:2
属性字段
<p>arcgis engine 开发。在进行空间查询的时候,把图层的属性字段加载到combobox中去。</p>
|
|
1楼#
发布于: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/> |
|
2楼#
发布于: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/> |
|