Posted 29 August 2022, 7:05 pm EST
Thanks for your reply!
That all makes sense, but when I try to implement that pattern I get stuck. Specifically, the SymbolRender event never fires. Here is some of my code:
''' <summary>
''' Save (or clear) selected point; will also set symbol rendering event handling
''' </summary>
''' <param name="seriesIndex">-1 to clear prior selection,</param>
''' <param name="pointIndex"></param>
Private Sub SetSelected(seriesIndex As Integer, pointIndex As Integer)
If SelectedSeriesIndex <> -1 Then RemoveHandler chtMulti.Series(SelectedSeriesIndex).SymbolRendered, AddressOf Series_SymbolRendering
If seriesIndex = -1 Then
SelectedSeriesIndex = -1
SelectedPointIndex = -1
Debug.Print("None selected")
Else
SelectedSeriesIndex = seriesIndex
SelectedPointIndex = pointIndex
Debug.Print("Point " & pointIndex & " selected")
AddHandler chtMulti.Series(SelectedSeriesIndex).SymbolRendering, AddressOf Series_SymbolRendering
End If
DrawGraph()
End Sub
Private Sub Series_SymbolRendering(sender As Object, e As RenderSymbolEventArgs)
Debug.Print("rendering...")
With CType(sender, C1.Win.Chart.FlexChart)
If SelectedSeriesIndex <> -1 AndAlso .Series.IndexOf(e.Series) = SelectedSeriesIndex Then
If SelectedPointIndex <> -1 Then
e.Engine.SetFill(Brushes.Black)
e.Engine.SetStrokeThickness(3)
Debug.Print("black fill")
Else
e.Engine.SetFill(e.Series.Style.FillColor)
e.Engine.SetStrokeThickness(e.Series.Style.StrokeWidth)
End If
End If
End With
End Sub
The “Selected” indices are global variables set when the user clicks on a point. The issue is by stepping through, I can see that the AddHandler statement is executing, but that method never gets hit (even if I comment out RemoveHandler to make sure it is not getting detached). Is there something else I need to turn on to allow custom rendering?
Comparing to your sample code, the only difference is that you attach the handler before the series is added to the collection, and I’m doing it on demand afterwards. But I wouldn’t think that would be the problem.
Any ideas?
Thanks,
Chris