【问题标题】:c# windows form application clear chart and reload errorc# windows form application clear chart and reload错误
【发布时间】:2014-08-23 01:09:33
【问题描述】:

我有一个 c# windows 窗体应用程序。我的 windows 窗体中有 2 个图表。我还有一个组合框和两个按钮。我想要的是根据组合框的文本,当我按下开始按钮加载不同的图表时。因此,在按钮启动事件中,根据组合框的值,我调用了一个不同的函数,该函数每次都加载我想要的图表。第二个按钮,停止按钮有下面的代码,以便清除图表。

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

有时我的代码运行正常,但有时会抛出错误 " 'SeriesCollection' 中已存在名为 'kwh_price' 的图表元素。"我加载图表的代码是:

        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;
        }

我做错了什么吗?为了清除图表还需要什么?而且我不明白为什么有时它运行正常而其他运行不正常。

【问题讨论】:

  • 为什么不把clear code放在load code之前呢?这样,您可以确保在添加新数据之前清除数据。 chart1 / chart2 是什么对象类型?这是第 3 方组件还是您编写的?
  • @LeeWillis 我照你说的做,因为为了能够按下开始按钮,你必须先按下停止按钮,所以我先调用清除代码。它们是线和列
  • @LeeWillis 但出于某种原因,它成功了!我试了大约 7 .8 次,它奏效了。虽然它不应该有任何区别。我总是在加载之前调用清晰的代码。
  • Series.Add() 的反义词是 Series.Remove(),而不是 Series.Clear()
  • 在解决问题时将评论移至答案

标签: c# charts reload


【解决方案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;
        }

【讨论】:

    猜你喜欢
    • 2022-08-19
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 2020-07-23
    • 2022-09-26
    • 1970-01-01
    相关资源
    最近更新 更多