Выборочное скрытие рядов на диаграмме c#

допустим, у меня есть диаграмма с 2 сериями на ней. Затем для каждой серии, у меня есть флажок, чтобы сказать, Хочу ли я их видеть или нет. Предположим, что я изначально замышлял и то, и другое, а потом хотел скрыть одно из них. Как лучше всего это сделать?

Я знаю, что мог бы просто Clear() и затем AddXY() они вернулись, но есть ли более быстрый способ сделать это?

мои попытки идеи:


1. Задайте свойству visibility значение true / false в зависимости от флажок.
свойство видимости отсутствует

2. Скопируйте коллекцию точек в переменную, очистите и верните обратно.
Series[].Points доступно только для чтения

3. Скопируйте ряд в переменную, очистите точки и вставьте обратно.
по-видимому, он хранит серию в качестве ссылки, когда я пытаюсь это сделать, и я не могу найти команду копирования.

Так что я, видимо, идет об этом неправильный путь. Как бы вы динамически разрешили диаграмме иметь разные ряды спрятан?

2 ответов


чтобы скрыть серию в MSChart, используйте Enabled собственность таким образом :

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

и чтобы показать это снова :

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

таким образом, вам не нужно удалять точки и повторно добавлять их.


есть другой способ сделать это, не скрывая легенда.

просто сказать:

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

вы можете сбросить цвет.Пустой позже, чтобы восстановить цвет по умолчанию.

единственным недостатком здесь является то, что если последний элемент в серии не скрыт, другие строки будут перекрашены