I want to change the symbol of features and legend programmatically. When I use this code
Dim pSymbolSelector As ISymbolSelector
Set pSymbolSelector = New SymbolSelector
Dim pMarker As ISimpleMarkerSymbol
Set pMarker = New SimpleMarkerSymbol
If Not pSymbolSelector.AddSymbol(pMarker) Then
MsgBox "Could not add symbol"
ElseIf pSymbolSelector.SelectSymbol(0) Then
Dim pSymbol As ISymbol
Set pSymbol = pSymbolSelector.GetSymbolAt(0)
End If
then Symbol Selector is open, but when I select a symbol it is not being applied at the current layer in Table of Contents.
2 Answers 2
According to the ESRI documentation: "The SymbolSelector class is used for presenting the user with a choice of symbols: marker, line, fill, or text. The symbols in the selector are taken from the currently referenced style files."
If you want to handle this task programmatically, without user input, you can use IFeatureRenderer.
-
Thanks a lot for ur response...But when i run the above code it open Symbol selector of only single type it does not change it for polyline or polygon type featureclass.. it means it shows only point type symbols not for polyline and polygon type.what should i do for that..Manish Sharma– Manish Sharma2012年08月29日 05:04:31 +00:00Commented Aug 29, 2012 at 5:04
-
2You're using 'ISimpleMarkerSymbol', which will give you a point marker. The code you posted is for point symbols, not line/polygon. IFeatureRenderer is still your best bet.Radar– Radar2012年08月31日 16:16:41 +00:00Commented Aug 31, 2012 at 16:16
You should use the interface ISimpleFillSymbol
.