Member 12815488 Ответов: 1

Цикл через диаграммы для инициализации / набора данных?


у меня есть много графиков, можно ли пройти через них, чтобы инициализировать / установить данные? прямо сейчас у меня есть

chart1. series[0]. points. clear()
chart1. series[1]. points. clear()

и т. д. Для нескольких серий и нескольких диаграмм. я бы с удовольствием сделал петлю, но, похоже, не могу установить текст с помощью петли

график(я).серия[я].очков.понятно()

я просто получаю ошибку. я также попробовал цикл ниже, и хотя я не получаю никаких ошибок, ничего не происходит

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

спасибо

Что я уже пробовал:

foreach (Chart x in this.Controls.OfType<chart>())
            {
                x.ChartAreas[0].series[0].clear
                x.ChartAreas[0].series[1].clear
                ....
            }

Member 12815488

Спасибо! это сработало. ценить это

1 Ответов

Рейтинг:
12

Ramza360

Проблема, вызвавшая ошибку при выполнении диаграммы[i]. серия[i].Точки.Clear (), скорее всего, вызван использованием одного и того же итератора для диаграммы и ряда. Это будет работать только в том случае, если у вас будет одинаковый номер каждой диаграммы и серии.

Кроме того, опубликованный цикл очищает только точки, вы отладили его, чтобы убедиться, что он попадает внутрь цикла?

Таким образом, при циклическом переборе вкладок, как я предполагаю, это делает предоставленный вами цикл, вам понадобятся 2 дополнительных цикла for/foreach.

Ваш цикл будет повторять каждый найденный элемент управления диаграммой.
Затем один цикл будет повторять каждую диаграмму в цикле диаграммы, а второй должен повторять каждую серию в цикле диаграммы.

foreach (Chart x in this.Controls.OfType(Chart)) {
    foreach (ChartArea area in x.ChartAreas) {
        foreach (Series series in area.Series){
             area.series.Points.Clear();

             // Add new points here
        }
    }
}


Вы должны добавить, чтобы убедиться, что коллекции ChartAreas и Series не являются нулевыми!