VB2010使用MS Chart:我添加了一个系列作为点图。有时超过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()
答案 0 :(得分:2)
我认为你必须循环,但是你要暂停更新UI,直到你为所有点完成它。尝试类似:
UICollectionView