C#+ArcGIS Engine二次开发之TOCControl右键菜单实现

对于TOCControl控件的学习比较重要的就是右键菜单了,例如右键菜单来实现显示属性表等功能。此次通过“显示图层名称”这样一个小功能来说一下右键菜单的实现,更多功能以后再完善。

话不多说,先上图,下图是右键TOCControl的图层。

然后点击显示图层名称之后的结果图如下:

分析:按照操作步骤首先要在TOCControl中添加OnMouseDown事件,当鼠标右键点击图层时弹出菜单(右键菜单控件是ContextMenuStrip),然后在右键菜单中添加要实现的功能,如此次添加的“显示图层名称”,最后对“右键图层名称”创建click事件,弹出窗体2 ,通过textBox显示所选图层的名称。

下面是代码部分:

ILayer pLayer = null;
        private void axTOCControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvent e)
        {
            esriTOCControlItem item = new esriTOCControlItem();
            IBasicMap map = new Map() as IBasicMap;
            object o = new object();
            axTOCControl1.HitTest(e.x, e.y, ref item, ref map, ref pLayer, ref o, ref o);
            if (e.button==2)//右击
            {
                contextMenuStrip1.Show(axTOCControl1, e.x, e.y);
            }
        }
private void btnShowLayerName_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2(pLayer );//传入参数
            frm.Show();
        }

创建Form2窗体,并添加TextBox控件用于显示图层名称。

public Form2(ILayer pLayer)
        {
            this.pLayer = pLayer;
            InitializeComponent();
        }
        ILayer pLayer = null;

        private void Form2_Load(object sender, EventArgs e)
        {
            this.textBox1.Text = pLayer.Name;
        }

以上,就可以创建TOCControl的右键菜单了,一个小小的显示图层名称功能简单显示一下创建步骤和思路,更多功能可自行研究。

注:转载请备注出处!

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值