ArcEngine二次开发,TOCControl控件上使用contextMenuStrip
右键菜单,在二次开发中很实用,以前没用过,最近通过一本书了解到,一直想找这么一个控件来用.
一般的控件,将contextMenuStrip控件拖到所依托的控件上,然后输入自己想要的几个功能. 在所依托的控件的属性里有个"ContextMenuStrip",选择ContextMenuStripX,这样就算是绑定了.
但是TOCControl控件绑定ContextMenuStrip就不同了,如果还像上面那样绑定就不管用了,绑定的过程没这么简单,要用代码来实现,首先要声明一个全局变量 private ILayer m_Layer; 然后在TOCControl1的OnMouseDown事件中添加如下代码 :
private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e)
{
if (e.button==2)
{
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); //以指定的坐标返回TOCControl中的项目
m_Layer = pLayer;
if (Item==esriTOCControlItem.esriTOCControlItemLayer)
{
contextMenuStrip1.Show(axTOCControl1,new System.Drawing.Point(e.x,e.y));
}
}
}
这样ContextMenuStrip就可以用了.
另外还有一种方法是纯代码形式的,没试验过:http://developer.51cto.com/art/201104/256774.htm.
参考资料:http://developer.51cto.com/art/201104/256774.htm
以及官网的,里面有sample:
http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//0016000000r7000000
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程