VB2010 с использованием диаграммы MS: я добавил одну серию в виде точечной диаграммы. Иногда имеется более 1000 точек, и названия точек становятся слишком беспорядочными. У меня включена смарт-маркировка:
cht.Series("srs").SmartLabelStyle.Enabled = True
Но все равно выглядит плохо. Поэтому я добавил контекстное меню, чтобы отключить ярлыки. Затем пользователь может увеличить масштаб до места и, при желании, снова включить ярлыки. Кажется, я не могу найти способ сделать это, не перебирая ВСЕ точки данных.
Я могу полностью скрыть точки и метки с помощью
cht.Series("srs").Enabled = False
Но я хочу, чтобы только ярлыки были скрыты, а затем отображались повторно, когда пользователь выбрал это.
Любая помощь приветствуется.
Изменить: поскольку я не нашел способа выключать и включать ярлыки с помощью одной команды, я в настоящее время просматриваю каждую точку в серии.
Me.Cursor = Cursors.WaitCursor
Application.DoEvents()
'suspend updating UI
cht.Series.SuspendUpdates()
'cycle through all points in the series and set the label either to an empty string or whatever is cached in the Tag property.
'todo: this is not efficient for large datasets but its the only thing we have.
For Each pt As DataPoint In cht.Series("srs").Points
If mnuDisplayLabels.Checked Then
pt.Label = pt.Tag.ToString
Else
pt.Label = ""
End If
Next pt
'resume updating UI
cht.Series.ResumeUpdates()
'force redraw of chart
cht.Update()