今天使用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();