23+资源环境信息系统(GIS07)C#4

23+资源环境信息系统(GIS07)C#4

ID:44987608

大小:3.72 MB

页数:60页

时间:2019-11-06

23+资源环境信息系统(GIS07)C#4_第1页
23+资源环境信息系统(GIS07)C#4_第2页
23+资源环境信息系统(GIS07)C#4_第3页
23+资源环境信息系统(GIS07)C#4_第4页
23+资源环境信息系统(GIS07)C#4_第5页
资源描述:

《23+资源环境信息系统(GIS07)C#4》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于VisualC#和ArcEngine的二次开发系统功能需求简单图层控制功能的实现数据的转换和可视化表达一、简单图层控制功能的实现图层属性表的添加和显示图层的添加和移除图层间关系的调整1图层属性表的添加和显示步骤1:设计图层控制的菜单。响应ContextMenuStrip菜单控件,为图层控件添加菜单项(显示属性表菜单和删除图层菜单)。该菜单是在鼠标右键点击图层时弹出的快捷菜单。添加的菜单项修改菜单name属性步骤2:实现图层与图层控制菜单间的关联。响应TOCControl控件的OnMouseDown事件,添加相关代码。usingESRI.ArcGIS.Carto

2、;//因为程序中用到ILayer和//IBasicMap接口,所以需要添加命名空间ILayerlayer=newFeatureLayerClass();privatevoidaxTOCControl1_OnMouseDown(objectsender,ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvente){this.axTOCControl1.ContextMenuStrip=null;IBasicMapmap=newMapClass();System.Objectother=null;System.Ob

3、jectindex=null;ESRI.ArcGIS.Controls.esriTOCControlItemitem=ESRI.ArcGIS.Controls.esriTOCControlItem.esriTOCControlItemNone;this.axTOCControl1.HitTest(e.x,e.y,refitem,refmap,reflayer,refother,refindex);if(item==ESRI.ArcGIS.Controls.esriTOCControlItem.esriTOCControlItemLayer&&e.button==2

4、){System.Drawing.Pointpt=newSystem.Drawing.Point();pt.X=e.x;pt.Y=e.y;pt=this.axTOCControl1.PointToScreen(pt);this.图层控制菜单.Show(pt);}}运行程序显示结果如下:步骤3:设计一个属性表窗体。1>添加一个属性表窗体。2>为属性表窗体添加DataGridView控件,并修改控件Anchor属性为(Top,Bottom,Left,Right)。3>为属性表窗体编写相关代码,实现图层属性信息往属性表中的添加。publicpartialclass属性表

5、:Form{privateILayerlayer;public属性表(ILayerlyr)//对属性表窗口进行初始化{InitializeComponent();layer=lyr;this.Text="""+layer.Name+""属性表";}privatevoid属性表_Load(objectsender,EventArgse){try{ITablelyrtable=(ITable)layer;DataTabletable=newDataTable();IFieldfield;for(inti=0;i

6、;i++){field=lyrtable.Fields.get_Field(i);table.Columns.Add(field.Name);}object[]values=newobject[lyrtable.Fields.FieldCount];IQueryFilterqueryFilter=newQueryFilterClass();ICursorcursor=lyrtable.Search(queryFilter,true);IRowrow;while((row=cursor.NextRow())!=null){for(intj=0;j

7、Fields.FieldCount;j++){objectob=row.get_Value(j);values[j]=ob;}table.Rows.Add(values);}this.dataGridView1.DataSource=table;}catch(Exceptione1){MessageBox.Show("无法显示属性表!");this.Close();}}}由于该段代码中用到了ILayer接口,所以要在属性表.cs开头添加命名空间ESRI.ArcGIS.Carto。同时也用到ITable,IQueryFilter,ICursor,IRow接口,所以要

8、添加命名空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。