TOCControl上实现右键
第一步:新建另外一个窗体
- 首先要定义一个全局变量 ILayer。
- 窗体要带参数,以便将 ILayer 传递过来。
- 获取属性列表。
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.Carto;
using ESRI.ArcGIS.Geodatabase; namespace MyGIS
{
public partial class Property : Form
{
ILayer pLayer;
public Property(ILayer layer)
{
InitializeComponent();
pLayer = layer;
} private void Property_Load(object sender, EventArgs e)
{
IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false);
IFeature pFeature = pFeatureCursor.NextFeature();
IFields pFields = pFeatureClass.Fields; DataTable pDataTable = new DataTable();
for (int i = ; i < pFields.FieldCount; i++)//获取所有列
{
DataColumn pColumn = new DataColumn(pFields.get_Field(i).Name);
pDataTable.Columns.Add(pColumn);
}
while (pFeature != null)
{
DataRow pRow = pDataTable.NewRow();
for (int i = ; i < pFields.FieldCount; i++)
{
pRow[i] = pFeature.get_Value(i);
}
pDataTable.Rows.Add(pRow);
pFeature = pFeatureCursor.NextFeature();
}
dataGridView1.DataSource = pDataTable; }
}
}第二步:建立右键菜单项
- 添加一个 ContextMenuStrip 控件,然后增加几个菜单项。
- 特别注意加入一个菜单项为“显示属性”。
- 判断在什么情况下显示右键菜单。
ILayer pGlobalFeatureLayer;
private void axTOCControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvent e)
{
if (e.button == )
{
esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;
IBasicMap pBasicMap = null;
ILayer pLayer = null;
object other = null;
object index = null;
axTOCControl1.HitTest(e.x, e.y, ref item, ref pBasicMap, ref pLayer, ref other, ref index);
pGlobalFeatureLayer = pLayer;//实现赋值
if (item == esriTOCControlItem.esriTOCControlItemLayer)//点击是图层的话,就显示右键菜单
{
contextMenuStrip1.Show(axTOCControl1, new System.Drawing.Point(e.x, e.y));//显示右键菜单,并定义其位置,正好在鼠标处显示
}
}
} private void 显示属性ToolStripMenuItem_Click(object sender, System.EventArgs e)
{
Property frm = new Property(pGlobalFeatureLayer);
frm.Text = "Attributies of" + pGlobalFeatureLayer.Name;
frm.ShowDialog();
}
TOCControl上实现右键的更多相关文章
- C# ArcEngine TOCControl上实现右键
第一种方法:使用contextMenuStrip控件 1.新建一个窗体AttributeTable,并定义一个全局变量mLayer,让主窗体里面的axMapControl1的layer传进来,从而获取 ...
- 在XP、Win7/8上如何右键进入命令行
在Win7/8上特别简单,只需要在按下shift键后,再点击鼠标右键,即可进入命令行界面.
- 如何在Macbook苹果笔记本上按右键点击(适用小米黑苹果)
1.按下Control键.保持按下Control(Ctrl)键,同时点击鼠标. 这一操作相当于在一个双键鼠标上右击. 点击鼠标后,你可以松开Control键. 该方法适用于单键鼠标或者MacBook ...
- DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- DevExpress中GridView上的右键菜单
1. 先拖一个PopupMenu和BarManage控件,设置PopupMenu的Manager属性为BarManager. 2. 先选中GridView,不是GridControl,在属性窗口中,选 ...
- 技巧:开启ubuntu系统桌面上的右键进入terminal命令行控制台功能
$ sudo apt-get install nautilus-open-terminal 执行上述命令,重启. 重启命令: $ sudo reboot 注意:需要联网
- SkylineGlobe 6.6 三维地图上实现自定义右键菜单示例代码
1.OnRButtonDown.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- 在Win2008上运行ASP.NET 1.1程序
在之前的文章<将Web站点由IIS6迁移至IIS7>中已经提到了关于在Win2008下运行ASP.NET 1.1程序的问题,但还不够完整,因此在这里重新整理一下. 1.要安装.net fr ...
- Linux 如何使用压缩与解压缩的方式将Windows下的zip压缩包上传到Linux系统
当我们无法使用xftp方式上传文件到Linux系统时,我们可以使用在Windows下压缩文件夹,然后到Linux系统下解压缩的方式,完成整个上传工作. 第一步:在Windows系统下,将整个文件夹压缩 ...
随机推荐
- C++和java多态的区别
C++和java多态的区别 分类: Java2015-06-04 21:38 2人阅读 评论(0) 收藏 举报 转载自:http://www.cnblogs.com/plmnko/archive ...
- JavaWeb:JavaBean基础
JavaBean基础 JavaBean简介: 1.JavaBean是一种可以重复使用的类,可以没有用户界面,主要负责业务数据或者处理事物(数据运算.操作数据库) 2.与JSP配合,可以简化JSP代码. ...
- Office Visio简介
Office Visio,是VISIO公司在91年推出的用于制作图表的软件(现在微软收购),在早期它主要用作商业图表制作,后来随着版本的不断提高,新增了许多功能.大多数图形软件程序依赖于艺术技能.Of ...
- [Node.js] Node.js项目的持续集成
原文地址:http://www.moye.me/2016/03/03/nodejs_ci_by_jenkins 引子 持续集成 (Continuous Integration,简称CI)是一种软件工程 ...
- Testing - 测试基础 - 概念
测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...
- td中绝对定位div的垂直居中问题
一.需求 典型的注册页面设计一般是一个三列多行的表格,左列为表单项label,中列为文本框,右列为填写说明和验证提示.如下图 因为整个表单的视觉重心在左中两列,所以在考虑表单整体相对页面水平居中和注册 ...
- J2EE修炼之四书五经[转自2004年程序员]
J2EE修炼之四书五经 作者:彭晨阳 J2EE其实没有四书五经,因为J2EE一直如汹涌澎湃的大江,推陈出新,不断高速发展,这是一种带领我们走向未来的技术.当然,如何在这种气势如虹的潮流之中不至于迷失方 ...
- 2013年最佳的16个 Photoshop 设计教程推荐
使用 Photoshop 的时候,没有基础操作知识的话,用起来会非常困难,所以你应该阅读一些教程才能应用它们在你的工作中.在这篇文章中你看到的 Photoshop 教程的集合是2013年发布的最优秀的 ...
- Elasticsearch 动态映射——自动检测
ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引.类型等信息,在索引的同时会自动完成索引.类型.映射的创建. 那么什么是映射呢?映射就是描述字段的类型.如何进行分析.如何进行索引等内 ...
- 写给自己的 程序集&msil 扫盲
嘴上不说 心里却想MD 这家伙在博客园装了这么久的高手 竟然连这都不会 ,我去噢. 程序集签名 .net 下 “程序集” 什么东东 ,反正就是听着挺牛x的,其实就是指“一堆程序”从我们传统的C++封装 ...