ошибка очистки диаграммы и перезагрузки приложения Windows form на c #

#c# #charts #reload

#c# #Диаграммы #перезагрузите

Вопрос:

У меня есть приложение c # Windows form.У меня есть 2 диаграммы в моей форме Windows. у меня также есть поле со списком и две кнопки среди прочих. То, что я хочу, соответствует тексту выпадающего списка, когда я нажимаю кнопку «Пуск» для загрузки разных графиков. Итак, при событии запуска кнопки в соответствии со значением combobox я вызываю другую функцию, которая каждый раз загружает диаграммы с тем, что я хочу. И вторая кнопка, кнопка остановки, содержит приведенный ниже код для очистки диаграмм.

         chart1.Series.Clear();
        chart2.Series.Clear();
  

Иногда мой код работает нормально, но бывают случаи, когда он выдает ошибку
» Элемент диаграммы с именем ‘kwh_price’ уже существует в ‘SeriesCollection'». Мой код для загрузки диаграммы:

         string[] seriesArray = { "kwh_price", "p_cost" };
        for (int i = 0; i < seriesArray.Length; i  )
        {
            this.chart1.Series.Add(seriesArray[i]);
            this.chart1.Series[seriesArray[i]].BorderWidth = 7;
        }
  

Я делаю что-то не так?? есть ли что-то еще, необходимое для очистки диаграммы?? И я не понимаю, почему иногда он работает нормально, а другие нет.

Комментарии:

1. Почему бы вам не ввести чистый код перед загрузкой кода? Таким образом, вы можете быть уверены, что данные очищены перед добавлением новых данных. Какой тип объекта chart1 / chart2? Это сторонний компонент или что-то, что вы написали?

2. @LeeWillis я делаю то, что ты говоришь, потому что для того, чтобы иметь возможность нажать кнопку «Пуск», сначала нужно нажать кнопку «Стоп», поэтому я сначала вызываю код очистки. это строки и столбцы

3. @LeeWillis но по какой-то причине это сработало! я пробовал это около 7, 8 раз, и это сработало. Хотя это не должно было иметь никакого значения. я всегда вызывал clear code перед загрузкой.

4. Противоположностью функции Series.Add() является функция Series. Удалить(), а не серию. Очистить()

5. Переместил комментарий в ответ, поскольку он устранил проблему

Ответ №1:

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

 chart1.Series.Clear();
chart2.Series.Clear();

string[] seriesArray = { "kwh_price", "p_cost" };
        for (int i = 0; i < seriesArray.Length; i  )
        {
            this.chart1.Series.Add(seriesArray[i]);
            this.chart1.Series[seriesArray[i]].BorderWidth = 7;
        }