MSChart条形图不起作用

时间:2014-01-30 12:09:22

标签: c# .net winforms bar-chart mschart

我有以下代码可以正常工作:

string[] seriesArray = { "s1", "s2", "s3", "s4", "s5" };
double[] data = { 5, 10, 30, 60, 120 };

for (int i = 0; i < data.Length; i++)
{
    Series series = chartTotalTime.Series.Add(seriesArray[i]);
    series.Points.Add(data[i]);
    chartTotalTime.Series[seriesArray[i]].IsValueShownAsLabel = true;
    series.ChartType = SeriesChartType.Column;
}

当我将代码更改为SeriesChartType.Bar时,它会断开,只显示一个带有红叉的白色框。有人可以告诉我为什么吗?考虑到旋转的图表几乎相同,这似乎很奇怪......我可以找到很少的如何实现这种控制的例子。

编辑添加设计师代码:

        // 
        // chartTotalTime
        // 
        chartArea1.Name = "ChartArea1";
        this.chartTotalTime.ChartAreas.Add(chartArea1);
        legend1.Name = "Legend1";
        this.chartTotalTime.Legends.Add(legend1);
        this.chartTotalTime.Location = new System.Drawing.Point(35, 3);
        this.chartTotalTime.Name = "chartTotalTime";
        series1.ChartArea = "ChartArea1";
        series1.Legend = "Legend1";
        series1.Name = "Series1";
        this.chartTotalTime.Series.Add(series1);
        this.chartTotalTime.Size = new System.Drawing.Size(300, 300);
        this.chartTotalTime.TabIndex = 0;
        this.chartTotalTime.Text = "chart1";

1 个答案:

答案 0 :(得分:2)

我遇到了你的问题。删除由图表控件添加的defalut系列(series1)。这应该可以解决你的问题。

默认系列的类型为SeriesCharType.Column。您不能将系列与不同的图表类型混合。当所有系列都是Column类型时,显示时没有问题。但是当您在代码中将类型更改为Bar时,它与默认的系列类型不兼容。