0

我有一张 MS 图表。我的代码如下:

chart.Series[chartType].Points.DataBindXY(xValues, xCaption, yValues, yCaption);
chart.ChartAreas[0].AxisX.LabelStyle.Format = "CustomAxisXFormat";
chart.FormatNumber += new EventHandler<FormatNumberEventArgs>(chart_FormatNumber);

然后

private void chart_FormatNumber(object sender, FormatNumberEventArgs e)
{
    if (e.ElementType == ChartElementType.AxisLabels &&
        e.Format == "CustomAxisXFormat")
    {
        e.LocalizedValue = string.Format("{0:hh tt}", new DateTime(1, 1, 2, (int)e.Value, 0, 0).AddHours(-1));
    }
}

xValuesyValuesare 是整数数组。
我遇到的问题是,如果xValues = int[]{1,2,3}chart_FormatNumber处理事件时,值 ( e.Value) 更改为{2,3,4}.
所以必须在那里做减法以使其成为正确的值。
有人能告诉我发生了什么和/或如何阻止 MSChart 改变我的价值观吗?

4

1 回答 1

1

好的,经过一番摸索,我弄清楚发生了什么。我提供的 x 参数是 int。MS 图表将 +1 和 -1 添加到 x 轴范围。我提供的 x 值是xValues = int[]{1,2,3}. 在chart_FormatNumber()我得到{0,1,2,3,4}这让我失望。

于 2012-08-05T15:42:08.507 回答