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