- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Visual C#和ArcEngine的二次开发;系统功能需求;一、简单图层控制功能的实现;1 图层属性表的添加和显示;步骤2:实现图层与图层控制菜单间的关联。响应TOCControl控件的OnMouseDown事件,添加相关代码。
//因为程序中用到ILayer和 //IBasicMap 接口,所以需要添加命名空间
ILayer layer = new FeatureLayerClass();
{
IBasicMap map = new MapClass();
?
System.Object other = null;
System.Object index = null;
;
{
pt.X = e.x;
pt.Y = e.y;
this.图层控制菜单.Show(pt);
}
}
;运行程序显示结果如下:
;步骤3:设计一个属性表窗体。
1添加一个属性表窗体。
;2 为属性表窗体添加DataGridView控件,并修改控件Anchor属性为〔Top, Bottom, Left, Right〕。;3 为属性表窗体编写相关代码,实现图层属性信息往属性表中的添加。
public partial class 属性表 : Form
{
private ILayer layer;
public 属性表(ILayer lyr) //对属性表窗口进行初始化
{
InitializeComponent();
layer = lyr;
this.Text = \ + layer.Name + \ 属性表;
}
; private void 属性表_Load(object sender, EventArgs e)
{
try
{
ITable lyrtable = (ITable)layer;
DataTable table = new DataTable();
IField field;
{
}
IQueryFilter queryFilter = new QueryFilterClass();
ICursor cursor = lyrtable.Search(queryFilter, true);
IRow row;; while ((row = cursor.NextRow()) != null)
{
{
object ob = row.get_Value(j);
values[j] = ob;
}
}
}
catch (Exception e1)
{
MessageBox.Show(无法显示属性表!);
this.Close();
}
}
};由于该段代码中用到了ILayer接口,所以要在属性表.cs开头添加命名空间。同时也用到ITable, IQueryFilter, ICursor, IRow接口,所以要添加命名空间。即添加如下代码:
但此时运行程序会报错:命名空间ESRI.ArcGIS中不存在类型名或命名空间名称Geodatabase〔是缺少程序集引用吗?〕。这时需要在资源管理器中将该程序集添加进来。;;步骤4:建立图层控制菜单与属性表的连接,实现属性表界面的显示。双击图层控制菜单上的“显示属性表〞菜单项,在响应的Click事件中添加如下代码:
private void 显示属性表ToolStripMenuItem_Click(object sender, EventArgs e)
{
属性表 form = new 属性表(layer)
文档评论(0)