【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 System.Windows.Forms;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;

namespace ArcTest
{
    public partial class Form1 : Form
    {
        private ILayer m_Layer;
        public Form1()
        {
            InitializeComponent();
        }

        //TOCControl中的鼠标事件
        private void axTOCControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvent e)
        {
            if (e.button == 2)
            {
                ESRI.ArcGIS.Controls.esriTOCControlItem Item = ESRI.ArcGIS.Controls.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);          //实现赋值
                m_Layer = pLayer;
                if (Item == esriTOCControlItem.esriTOCControlItemLayer)           //点击的是图层的话,就显示右键菜单
                {
                    contextMenuStrip1.Show(axTOCControl1, new System.Drawing.Point(e.x, e.y));
                    //显示右键菜单,并定义其相对控件的位置,正好在鼠标出显示
                }
            }
        }

        private void 打开属性表ToolStripMenuItem_Click(object sender, EventArgs e)
        {
             AttributesTableForm2 frm = new AttributesTableForm2(axMapControl1);
            frm.ShowDialog();
        }
    }
}
时间: 2024-10-07 00:49:45

【ArcEngine 10 二次开发】ITOCControl添加鼠标右键菜单的相关文章

【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.A

如何添加程序到windows的鼠标右键菜单,

如何修改windows的鼠标右键菜单 当一个程序是一个绿色安装包的时候,你又要用这个软件频繁打开的文件的时候,当选择打开时,每次都要选择应用程序,会带来操作上的繁琐和不便.但是我们可以添加鼠标右键菜单,也就是,用鼠标右键点击文件,弹出来的那个菜单. 修改这个菜单,要修改windows的注册表. 在开始->运行,输入regedit,即可快速进入注册表编辑菜单. 1.找到HKEY_CLASSES_ROOT,展开,点击*,找到shell,展开,鼠标右键点击shell,点击新建,输入自己想在鼠标右键菜单

OpenLayers 3 之 添加地图鼠标右键菜单

添加右键菜单,首先我们要监听鼠标右键点击的操作,我们知道鼠标右键事件名是 contextmenu,当鼠标在 html 元素之上,点击鼠标右键,便会触发 contextmenu 事件,在 contextmenu 事件的回调函数中实现相应的显示菜单功能即可. 那么在 openlayers 中,在地图中添加这个事件,我们从哪里下手呢?首先我们得了解 openlayers 的初始化页面的过程. openlayers 初始化页面过程 openlayers 也是一个前端库,那么它肯定离不开 html 的运用

Unity 添加鼠标右键事件

把此类放到 Editor下使用就OK 1 using UnityEngine; 2 using System.Collections; 3 using System.Collections.Generic; 4 using UnityEditor; 5 6 /// <summary> 7 /// 添加鼠标右键事件 8 /// </summary> 9 [InitializeOnLoad] 10 [ExecuteInEditMode] 11 public static class A

将Sublime Text 添加到鼠标右键菜单的教程方法

安装notepad++软件,在菜单右键自动会添加“edit with notepad++"的选项,那么怎么将Sublime Text 添加到鼠标右键菜单呢?下面是我的操作过程,希望有帮助! 1.win+R打开cmd窗口,输入regedit,打开注册表 2.依次找到HKEY_CLASSESS_ROOT->*->Shell,下面新建项,命名为Edit with Sublime Text3. 3.在项“Edit with Sublime Text”下新建字符串值,命名为Icon,值为 E:

C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开文件和删除文件功能

在前面讲述过使用TreeView控件和ListView控件显示磁盘目录信息,但仅仅是显示信息是不够的,我们还需要具体的操作.在"个人电脑使用历史痕迹"项目中我还需要添加"打开文件"和"删除文件"两种方法.具体如下: 在第一篇文章"C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标"中显示如下: http://blog.csdn.net/eastmount/article/details/1945310

向鼠标右键菜单增加菜单项

下了个别人集成好各种插件的Sublime Text 3编辑器,由于没有右键菜单“Edit with Sublime_text”感觉很不方便,就上网百度了下,把方面记录下!~ REGEDIT4 [HKEY_CLASSES_ROOT\*\Shell\Edit with Sublime_text] [HKEY_CLASSES_ROOT\*\Shell\Edit with Sublime_text\Command] @="E:\\Sublime Text 3\\sublime_text.exe \&qu

自定义菜单鼠标右键菜单打开选项

//将你想要添加到鼠标邮件的应用添加进来., 自动为Notepad增加鼠标右键菜单的打开选项 将下面的内容保存到bat批处理文件,然后将文件放到Notepad++.exe所在目录,双击运行即可. 文件内容: @echo off TITLE 自动为Notepad增加鼠标右键菜单的打开选项 cls color 0B echo 可按需要修改执行文件变量即可,目录路径会自动获取 echo 自动生卸载文件,方便不用的时候可以清除加入的注册表内容 ping 127.1 -n 3 >nul rem TheEx

Beyond Compare3 添加到右键菜单

Beyond Compare 是个优秀的工具,我们经常用于对比文件和文件夹,右键点点就可以调用对比,着实很方便.但从3.2版本之前,我们可以从设置中将bc关联到文件夹和文件右键,但之后的版本已经找不到此设置选项.没有此选项每次要先打开bc,然后再选择要比较的文件或文件夹,造成一定的麻烦,也不怎么习惯.我们可以通过手动添加注册表的方式来解决. 为方便大家,线提供组织好的批处理一份,只需将批处理保存运行即可. 重要说明:1:首先确保bc目录下有BCShellEx.dll,或者BCShellEx64.