C# AE 关于TOCControl

 TOCControl图层名称不显示

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

解决地址:http://blog.csdn.net/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

posted @ 2017-07-28 15:34  marvelousone  阅读(335)  评论(0编辑  收藏  举报