今天使用AO的TOCControl来显示图层名字,但是无论怎么样,TOCControl就是无法显示加入的shapefile的名称。后来才知道,原来加入shapefile时,没有规定图层的名字。代码如下,希望以后遇到这个问题的朋友能够少走弯路。
pMap = pHookHelper.FocusMap;
pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
pFeatureLayer = new FeatureLayerClass();
pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(Path.GetDirectoryName(openFileDialog.FileName), 0);
pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(Path.GetFileName(openFileDialog.FileName));
//这句话必须加上,否则该Layer名字将为“”,TOCContronl内的名称也不显示!
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
pMap.AddLayer(pFeatureLayer);
pMap.MapUnits = ESRI.ArcGIS.esriSystem.esriUnits.esriMeters;//必须设定单位,否则比例尺无法计算
((IActiveView)pMap).Refresh();