ITOCControl添加鼠标右键菜单

1.添加contextMenuStrip

2.//TOCControl中的鼠标事件

//被选中的图层
ILayer m_layer = null;

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));//显示右键菜单,并定义其相对控件的位置,正好在鼠标出显示}}}

3.添加要使用的方法

private void 移除ToolStripMenuItem_Click(object sender, EventArgs e)
{//一、判断选中的图层是否为空
if (m_layer == null)
{MessageBox.Show("请选择图层");
return;}
//二、删除图层
IMap pMap = axMapControl2.Map;
pMap.DeleteLayer(m_layer);
m_layer = null;}

原文地址:https://www.cnblogs.com/wgj-blog/p/12170354.html