C# AE 关于TOCControl

本文解决了一个在TOCControl中图层名称不显示的问题,通过为FeatureLayer添加AliasName属性来修复。同时提供了实现图层右键菜单的方法。

 TOCControl图层名称不显示

今天遇到了TOCControl只显示符号不显示图层名称的问题,上网百度一波之后发现有人遇到过

解决地址:http://blog.youkuaiyun.com/congxn/article/details/3081667

认真阅读代码后,和自己的比较了下,发下加载FeatureLayer 之后的确没有加FeatureLayer 的 AliasName。添加上后完美解决问题。

 1 pMap = pHookHelper.FocusMap;
 2 pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
 3 pFeatureLayer = new FeatureLayerClass();
 4 pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(Path.GetDirectoryName(openFileDialog.FileName), 0);
 5 pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(Path.GetFileName(openFileDialog.FileName));
 6 //这句话必须加上,否则该Layer名字将为“”,TOCContronl内的名称也不显示!
 7 pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
 8 pMap.AddLayer(pFeatureLayer);
 9 pMap.MapUnits = ESRI.ArcGIS.esriSystem.esriUnits.esriMeters;//必须设定单位,否则比例尺无法计算
10 ((IActiveView)pMap).Refresh();

 

实现右击菜单

1.使用contextmenustrip控件,输入菜单名称,设置opening事件(空的)此步骤可以没有,然后在TOCControl的Onmousedown事件内判断点击到了图层名的话就contextmenustrip.show();

2..使用contextmenustrip控件,输入菜单名称,设置opening事件(空的)此步骤可以没有,然后在form_load事件中实例化contextmenustrip cms = new contextmenustrip(), this.ContextMenuStrip = cms;注意如果你在代码中写菜单名称(like this:cms.Items.Add("移出");)那么就会导致前面才图形界面设置的菜单名称失效。

3.别人总结的在AETOCControl上实现右键菜单:地址

4.链接:http://www.cnblogs.com/hantianwei/archive/2009/09/20/1570303.html

https://www.cnblogs.com/marvelousone/p/7337566.html

转载于:https://www.cnblogs.com/marvelousone/p/7250566.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值