using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
namespace EngineWindowsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
IMap m_pMap; //获得AxMapControl1的地图
IEnumLayer m_pEnumLayers; //在一个地图中枚举层集
ILayer m_pLayer;
private void Form1_Load(object sender, EventArgs e)
{
string path = Application.StartupPath + "\\实验三数据\\实验三数据.mxd";
if (axMapControl1.CheckMxFile(path)) axMapControl1.LoadMxFile(path);
axTOCControl1.SetBuddyControl(axMapControl1);
cboMaps.Items.Add(axMapControl1.Map.Name);
}
private void cboMaps_SelectedIndexChanged(object sender, EventArgs e)
{
m_pMap = axMapControl1.Map;
m_pEnumLayers = m_pMap.Layers;
m_pLayer = m_pEnumLayers.Next();
while (m_pLayer != null)
{
lboMapLayers.Items.Add(m_pLayer.Name);
m_pLayer = m_pEnumLayers.Next();
}
}
private void lboMapLayers_Click(object sender, EventArgs e)
{
lboFields.Items.Clear();
m_pEnumLayers.Reset();
m_pLayer = m_pEnumLayers.Next();
while (m_pLayer != null)
{
if (m_pLayer.Name == lboMapLayers.Text) break;
m_pLayer = m_pEnumLayers.Next();
}
IFeatureLayer pFLayer = m_pLayer as IFeatureLayer;
IFeatureClass pFClass;
IFields pFields;
pFClass = pFLayer.FeatureClass;
pFields = pFClass.Fields;
int i;
for (i = 0; i < pFields.FieldCount - 1; i++)
{
lboFields.Items.Add(pFields.get_Field(i).Name);
}
}
private void lboFields_Click(object sender, EventArgs e)
{
lboFields.Items.Clear();
m_pEnumLayers.Reset();
m_pLayer = m_pEnumLayers.Next();
while (m_pLayer != null)
if (m_pLayer.Name == lboMapLayers.Text) break;
m_pLayer = m_pEnumLayers.Next();
IFeatureLayer pFLayer = m_pLayer as IFeatureLayer;
IFeatureClass pFClass;
IFields pFields;
pFClass = pFLayer.FeatureClass;
pFields = pFClass.Fields;
int i;
for (i = 0; i < pFields.FieldCount - 1; i++)
{
lboFields.Items.Add(pFields.get_Field(i).Name);
}
}
}
}