Microsoft Chart控件 - 大红色X(坏)每当我使用财务公式时

时间:2010-02-28 18:59:43

标签: c# asp.net charts asp.net-charts

我在这里从另一篇文章中发现了微软的.Net图表控件,到目前为止我很喜欢它们。对于任何需要它的人,这里是链接: http://code.msdn.microsoft.com/mschart

我在运行时执行所有操作,例如创建系列并在图表区域上拍打它们。我可以通过向它提供X值和4个Y值来成功创建烛台图表,当我将它添加到图表时如下:

// "Price" is the .Name property of this series
chart1.Series.Add(priceseries);

效果很好。接下来,我仔细研究了这个可爱的财务公式控件附带的样本。样本说使用移动平均公式(仅以此为例,我无法使其中任何一个工作),代码如下:

chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage,"5","Input","Simple");

其中“5”是使用期限,因此可以是我想要的任何东西。 “输入”是它看起来的数据源系列,“简单”是输出系列。为了将其转换为适用于我的代码的方式,我创建了一个按钮并执行了此操作:

    private void button1_Click(object sender, EventArgs e)
    {
        chart1.DataManipulator.FinancialFormula(FinancialFormula.MovingAverage, "5", "Price", "SMA");     
    }

很好很简单,是吗?好吧,只要我点击那个按钮,我的图表控件就会以任何方式,形状或形式在图表上显示一个大的,红色的,不快乐的X而不是移动平均线系列(我将其命名为“SMA”)。

添加上面的代码,我已经尝试过预先创建“SMA”系列,我尝试在执行financialformula调用之后将“SMA”系列添加到图表中,并且最终都得到了大的平均红色X.再次看一遍示例代码,看起来单行代码就是生成额外数据系列所需的全部代码,但我被卡住了!红色X没有任何调试信息也无济于事(

有关如何摆脱大X的任何想法,并让它显示新的数据系列?

更新: 就像测试一样,我删除了关于将系列添加到Chart1的位,然后我在它之后添加了chart1.DataManipulator位。正如预期的那样,没有出现所有初始数据的初始系列(因为我删除了将其添加到图表中的部分),但是当下一行代码执行公式应用程序时 - 没有大红色X.没有数据显示,但没有错误代码 - 所以我想这是一个改进?这让我相信,我正在应用公式的初始数据集存在某种问题,或者与图表控件本身的视图/边界有关。如果我在该轨道上找到更多内容,我会将其作为第二次更新发布。

3 个答案:

答案 0 :(得分:3)

我发现了问题的根源:

priceseries.IsXValueIndexed = true;

我最初这样做是为了省略任何空白数据点(这将是股票价格场景中的周末)。当我将值更改为false时,突然公式的应用工作正常。缺点是我有没有数据的周末日期空白点!但这是我可以自己解决的另一个问题。

对于遇到此问题的其他人,请参阅此参考文章以获取更多信息: http://msdn.microsoft.com/en-us/library/dd456699(VS.100).aspx

关于首先对数据进行分组的说明不是开玩笑。不要忽略任何数据点!

答案 1 :(得分:2)

也发生在我身上。

使用FinancialFormulas(特别是FinancialFormula.ExponentialMovingAverage)时,系列ChartType应设置为SeriesChartType.Line。

在我的代码中,它设置为SeriesChartType.FastLine,这是从System.Drawing.dll抛出OverflowException

答案 2 :(得分:1)

大红色X是在运行/解释公式时遇到问题并放弃鬼魂的控件。也许这个公式对于Chart控件来说太复杂和太过于处理了......也许,有一个更新的代码版本已经解除了限制。对于codeplex.com,必然会出现这种情况。

这也可能在设计时同样发生,在设计表单时,控件被拖到它上面,在这里和那里设置了一些属性并得到一个大的红色X,这在控件行为异常时很常见在设计时也。

希望这有帮助, 最好的祝福, 汤姆。