| |
I Have tried this:
Private Sub ChangeLabel(ByVal LayerName As String, ByVal DisplayField As String)
Dim tSym As TextSymbol = New TextSymbolClass
Dim FLayer As IFeatureLayer = m_Featurelayer
Dim GLayer As IGeoFeatureLayer = CType(FLayer, IGeoFeatureLayer)
Dim iEProp As ILabelEngineLayerProperties = New LabelEngineLayerPropertiesClass
Dim iAnnoProp As IAnnotateLayerPropertiesCollection
Dim bProp As IBasicOverposterLayerProperties = New BasicOverposterLayerPropertiesClass
GLayer.AnnotationProperties.Clear()
iAnnoProp = GLayer.AnnotationProperties
Dim font As IFontDisp = tSym.Font
font.Bold = True
font.Size = 40
tSym.Font = font
'Field to read in table
GLayer.DisplayField = DisplayField
bProp.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon
iEProp.BasicOverposterProperties = CType(bProp, BasicOverposterLayerProperties)
iEProp.Symbol = tSym
GLayer.AnnotationProperties.Add(CType(iEProp, IAnnotateLayerProperties))
GLayer.DisplayAnnotation = True
End Sub
And This:
Dim pGeoLayer As IGeoFeatureLayer = m_Featurelayer
Dim pAnnoLayerPropsColl As IAnnotateLayerPropertiesCollection = pGeoLayer.AnnotationProperties
Dim pAnnoLayerProps As IAnnotateLayerProperties
pAnnoLayerPropsColl.Clear()
Dim pBOLayerProps As IBasicOverposterLayerProperties
pBOLayerProps = New BasicOverposterLayerProperties
pBOLayerProps.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon
pBOLayerProps.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape
pBOLayerProps.FeatureWeight = esriBasicOverposterWeight.esriNoWeight
pBOLayerProps.LabelWeight = esriBasicOverposterWeight.esriLowWeight
Dim tSym As TextSymbol = New TextSymbolClass
Dim font As IFontDisp = tSym.Font
font.Bold = True
font.Size = 40
tSym.Font = font
Dim aLELayerProps As ILabelEngineLayerProperties = New LabelEngineLayerProperties
aLELayerProps.Expression = "[SDE.TAXLANDVIEW.LI_VALUE]"
aLELayerProps.IsExpressionSimple = True
aLELayerProps.Symbol = tSym
aLELayerProps.BasicOverposterLayerProperties = pBOLayerProps
Dim pSelField As String
pSelField = """SDE.TAXLANDVIEW.LI_VALUE"""
Dim pSelValue As String
pSelValue = "'0'"
Dim pSqlString As String
pSqlString = pSelField & " <> " & pSelValue
pAnnoLayerProps = aLELayerProps
pAnnoLayerProps.Class = "Tax Value"
pAnnoLayerProps.WhereClause = pSqlString
pAnnoLayerPropsColl.Add(pAnnoLayerProps)
pGeoLayer.DisplayAnnotation = True |