Problem Statement
Clearing data points in MSChart is known to be very slow.
Solution
However, there is a workaround for this problem. The suggested workaround from link stated above is as below:
public void ClearPointsQuick()
{
Points.SuspendUpdates();
while (Points.Count > 0)
Points.RemoveAt(Points.Count - 1);
Points.ResumeUpdates();
Points.Clear();
}
Extension method implementation is as below:
internal static class MSChartExtension
{
public static void ClearPoints(this Series sender)
{
sender.Points.SuspendUpdates();
while (sender.Points.Count > 0)
sender.Points.RemoveAt(sender.Points.Count - 1);
sender.Points.ResumeUpdates();
sender.Points.Clear();
}
}
(NOTE 1): I added one additional line Points.Clear()
at the end of the function to ensure the chart axis updated correctly on next plot. Without adding this line, I observed that previous axis settings will be used when plotting new data points right after calling ClearPoints()
.
See Also
MSChart Extension: An extension package for MSChart component which contains these fixes and other features.
Revision History
- 31/03/2012: Added additional line to force axis update on next plot (NOTE 1)
- 12/03/2012: Initial release