Instructions provided describe how to add an Annotation FeatureClass to MapControl with ArcObjects.
To do this, you use the IAnnotationLayerFactory interface with its method, OpenAnnotationLayer(). This method opens an annotation feature class and returns a layer for it. (This interface comes from FDOGraphicsLayerFactory class)
This method takes:
- the workspace of annotation class (IFeatureWorkspace)
- the feature dataset contains annotation class (IFeatureDataset)
- the name of annotation class (type string)
We receive a layer type IAnnotationLayer. You just cast this layer to IFeatureLayer and after that you add it to MapControl ( with method AddLayer() of IMapControl3 or IMapControl4).
Suppose that I have got myFeatureWorkspace (IFeatureWorkspace), myFeatureDataset (IFeatureDataset), myAnnotationName (string) and myMapControl (IMapControl4) objects. The codes like this:
IFeatureClass myFeatureClass = myFeatureWorkspace .OpenFeatureClass(myAnnotationName );
//if this featureclass is annotation class
if (myFeatureClass .FeatureType == esriFeatureType.esriFTAnnotation)
IAnnotationLayerFactory annotationLayerFactory = new FDOGraphicsLayerFactoryClass();
IAnnotationLayer annotationLayer = annotationLayerFactory.OpenAnnotationLayer(myFeatureWorkspace , myFeatureDataset , myAnnotationName );
IFeatureLayer feaLayer = new FeatureLayerClass();
//cast to IFeatureLayer
feaLayer = annotationLayer as IFeatureLayer;
feaLayer.Name = myAnnotationName; //optional
myMapControl .AddLayer(feaLayer, 0);
Kim Tho Pham,
Ho Chi Minh City, Vietnam.