10

假设我有一张图表,上面有 2 个系列。然后对于每个系列,我都有一个复选框来说明我是否想看它们。假设我最初绘制了两者,然后想隐藏它们中的任何一个。做这个的最好方式是什么?

我知道我可以Clear()这样做,然后AddXY()他们又回来了,但是有没有更快的方法呢?

我尝试的想法:


1. 根据复选框将可见性属性设置为真/假。
没有可见性属性

2. 将点集合复制到变量,清除,然后放回。
Series[].Points是只读的

3. 将系列复制到变量,清除点,然后放回。
显然它将系列存储为参考当我尝试这个时,我找不到复制命令。

所以我显然是以错误的方式解决这个问题。您将如何动态地允许图表隐藏不同的系列?

4

2 回答 2

25

要在 MSChart 中隐藏系列,请以Enabled这种方式使用该属性:

msChart.Series["Series"].Enabled = false;

并再次展示它:

msChart.Series["Series"].Enabled = true;

所以你不需要删除点并重新添加它们。

于 2013-02-21T21:42:07.950 回答
2

还有另一种方法可以在不隐藏图例的情况下做到这一点。

简单地说:

Chart.Series[0].Color = Color.FromArgb(0, 0, 0, 0); //sets color to transparent

您可以稍后重置为 Color.Empty 以恢复默认颜色。

这里唯一的缺点是除非系列中的最后一项被隐藏,否则其他行将重新着色

于 2018-08-17T04:44:02.520 回答