框架4中的条形图 - 更新问题

时间:2010-08-05 16:09:31

标签: .net winforms charts

所以我试图在柱形图中以programmaticaly方式更新dataPoints但是每当我这样做时,柱形图显示空列,其中有一个大于零的数字,否则显示零。现在,下面的代码适用于饼图,但由于某种原因,它不适用于条形图。

    barChart.Series(0).Points.Item(0).YValues.SetValue(countInstSubs, 0)
    barChart.Series(0).Points.Item(1).YValues.SetValue(countPCLRetSubs, 0)
    barChart.Series(0).Points.Item(2).YValues.SetValue(countSYNRetSubs, 0)
    barChart.Series(0).Points.Item(3).YValues.SetValue(countPRESListSubs, 0)
    barChart.Series(0).Points.Item(4).YValues.SetValue(countUSInstSubs, 0)
    barChart.Refresh()

当我使用设计器填充一些静态值时,图表会显示这些值。但是一旦我尝试更新它们,我就得到一张空白图表。我也尝试完全清除系列并在每次想要更改图形时重建它,但这也不起作用。

有没有人见过这个?

2 个答案:

答案 0 :(得分:1)

原来问题在于轴缩放。一旦值发生变化,轴就不会自动重新计算(我认为是错误的),所以你必须手动完成。

    barChart.Series(0).Points.Item(0).SetValueY(countInstSubs)
    barChart.Series(0).Points.Item(1).SetValueY(countPCLRetSubs)
    barChart.Series(0).Points.Item(2).SetValueY(countSYNRetSubs)
    barChart.Series(0).Points.Item(3).SetValueY(countPRESListSubs)
    barChart.Series(0).Points.Item(4).SetValueY(countUSInstSubs)
    barChart.ChartAreas(0).RecalculateAxesScale()
    barChart.Refresh()

这解决了这个问题。

答案 1 :(得分:0)

找出解决方案的好工作。你应该把它标记为答案。

您还可以使用以下语法动态添加点:

barChart.Series(0).Points.AddY(countInstSubs);
barChart.Series(0).Points.AddY(countPCLRetSubs);
barChart.Series(0).Points.AddY(countSYNRetSubs);
barChart.Series(0).Points.AddY(countPRESListSubs);
barChart.Series(0).Points.AddY(countUSInstSubs);