【ArcEngine 10 二次开发】DataGridView显示Layer中的属性表

显示图层Layer中的属性表

新建一个Form窗口

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;

namespace ArcTest
{
    public partial class AttributesTableForm2 : Form
    {

        private ILayer m_Layer;

        public AttributesTableForm2(ILayer pMapLayer)
        {
            InitializeComponent();
            m_Layer= pMapLayer;
        }

        private void AttributesTableForm2_Load(object sender, EventArgs e)
        {
            ILayer pLayer = m_Layer;

            IFeatureLayer pFLayer = pLayer as IFeatureLayer;

            IFeatureClass pFC = pFLayer.FeatureClass;

            IFeatureCursor pFCursor = pFC.Search(null, false);

            IFeature pFeature = pFCursor.NextFeature();

            DataTable pTable = new DataTable();

            //添加自定义字段
            DataColumn colName = new DataColumn("省 直辖市");

            colName.DataType = System.Type.GetType("System.String");

            pTable.Columns.Add(colName);

            //添加自定义字段
            DataColumn colArea = new DataColumn("面积");

            colArea.DataType = System.Type.GetType("System.Double");

            pTable.Columns.Add(colArea);

            int indexOfName = pFC.FindField("CHINESE");

            int indexOfArea = pFC.FindField("Area");

            while(pFeature != null)
            {
                string name = pFeature.get_Value(indexOfName).ToString();
                double area = (double)pFeature.get_Value(indexOfArea);

                DataRow pRow = pTable.NewRow();

                pRow[0] = name;

                pRow[1] = area;

                pTable.Rows.Add(pRow);

                pFeature = pFCursor.NextFeature();

            }

            dataGridView1.DataSource = pTable;
        }
    }
}
时间: 2024-10-04 17:40:55

【ArcEngine 10 二次开发】DataGridView显示Layer中的属性表的相关文章

【ArcEngine 10 二次开发】ITOCControl添加鼠标右键菜单

1 用contextMenuScript 首先,在ITOCControl控件中添加contextMenuScript控件, 设置好右键菜单中的Items 然后,加入如下的代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using

CAD二次开发---导入外部文件中的块并输出预览图形(五)

思路: 1)首先要定义一个数据库对象来表示包含块的文件,改数据库对象会被加载到内存中,但不会被显示在CAD窗口中. 2)调用Database类的ReadDwgFile函数将外部文件DWG文件读入到新创建的数据库对象中. 3)最后调用Database类的WblockCloneObjects函数将外部的DWG文件中块对象复制到当前数据库中. 1 /// <summary> 2 /// 外部文件导入块, 3 /// </summary> 4 /// <param name=&quo

ArcEngine C# 二次开发 PolyLine 多次打断操作

一条线(Polyline)被另外一条线多次(Polyline)切割,也就是说打断的点有多个,而AE中的IFeatureEdit.Split()只能是一个点一个点的处理,这样就涉及到了循环操作,现在将本人自己写具体的操作函数附上,大家一同学习. 1 public void LineSplit(IFeature feature, IGeometry other) 2 { 3 try 4 { 5 ITopologicalOperator shape = feature.Shape as ITopolo

ArcGIS二次开发实践— — 遍历ToolBox中的工具!

在AO中,打开“文件A”的基本流程是: 1.创建对应“文件A”类型的WorkspaceFactory: 2.用WorkspaceFactory创建“文件A”的Workspace,Workspace可以是文件所在文件夹(如本文后面要创建的ToolBox的Workspace),也可以是空间数据库(如果你把文件存到数据库里了或要打开数据库里的数据). 3.用Workspace打开“文件A”,获得对应类型的“文件A”对象: ----------------------------------------

NX二次开发-UFUN将工程图中的点坐标映射到建模绝对坐标UF_VIEW_map_drawing_to_model

1 #include <uf.h> 2 #include <uf_ui.h> 3 #include <uf_draw.h> 4 #include <uf_view.h> 5 #include <uf_curve.h> 6 7 8 9 UF_initialize(); 10 11 //在工程图里创建点 12 double p1[3] = { 106.905267, 139.431151 }; 13 14 //获得图纸页tag 15 int num_

《ArcGIS Engine+C#实例开发教程》第八讲 属性数据表的查询显示

原文:<ArcGIS Engine+C#实例开发教程>第八讲 属性数据表的查询显示 第一讲 桌面GIS应用程序框架的建立 第二讲 菜单的添加及其实现 第三讲 MapControl与PageLayoutControl同步 第四讲 状态栏信息的添加与实现 第五讲 鹰眼的实现 第六讲 右键菜单添加与实现 教程Bug及优化方案1 第七讲 图层符号选择器的实现1 第七讲 图层符号选择器的实现2 第八讲 属性数据表的查询显示 摘要:这一讲中,我们将实现图层属性数据表的查询显示.在ArcMap中,单击图层右

[ArcEngine二次开发]为Feature的属性赋值

在创建FeatureClass之后,需要为FeatureClass添加Features,在为Feature的字段赋值时,代码大致如下: 在这里赋值的时候,出现了一个错误: The operation was attempted on an empty geometry. 因为有一个字段类型为esriFieldTypeOID,它是类似与SQL Server或者其他关系型数据库中的主键,是会自动增加的,因此这里判断如果字段类型是esriFieldTypeOID的话,就跳过,不为其赋值. 最终成功为F

ERP小型集团化——重点功能及二次开发配置——自定义业务

客户帐套配置小型集团化后,审批相关功能的使用和以前有些差别:二次开发的suite工具中,部分功能也设置了数据同步(工具中带※图案的功能),即这些配置信息全部保存在了集团数据库中. 注意:建议带※标识的功能集团帐套的Suite中创建!!! 以下是和以前使用方式有变化的功能的介绍,未介绍的功能使用方式不变: 1.  审批 2.  查询 3.  自定义业务 4.  清单查找/树形查找(无※) 5.  移动OA及二次开发(商业智能) 6.  单据直送 7.  其他 ...................

DT二次开发之-常量全局变量说明及使用

什么是destoon常量? destoon常量是指destoon官方的开发者在开发时封装在destoon程序中的一些系统设置参数 这些参数是固定的,我们是不能修改的,也不需要去修改.(PS:只要你牛掰,系统全改了也行) 比如我们的网站首页地址:DT_PATH,站点安装目录路径:DT_ROOT,风格目录网址:DT_SKIN等. 具体可以参数考官方帮助手册:http://help.destoon.com/book/show-67.html 常量怎么使用? 常量的使用办法很简单 在php中使用,直接