微软图表控件 - 当我使用财务公式时出现大红色X(错误)

3
我在这里看到了另一篇文章,介绍了微软的.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”是要使用的周期,可以是任何值。“Input”似乎是数据源系列,“Simple”是输出系列。为了使其与我的代码配合使用,我创建了一个按钮并执行了以下操作:

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

很简单吧?但是,一旦我点击了这个按钮,我的图表控件就会显示一个大的、红色的、不高兴的X,而不是以任何方式、形式或形态在图表上显示移动平均线系列(我命名为“SMA”)。

除了上面的代码之外,我尝试过预先创建“SMA”系列,也尝试过在进行金融公式调用后将“SMA”系列添加到图表中,但两者都以大的、平均的红色X结束。再次查看示例代码,似乎只需要一行代码就可以生成额外的数据系列,但我卡住了!没有调试信息,红色X一点也没帮助。

有什么想法可以摆脱大X,并显示新的数据系列呢?

更新: 作为测试,我删除了关于添加系列到Chart1的部分,然后在它之后添加了chart1.DataManipulator的部分。如预期的那样,具有所有初始数据的初始系列不会出现(因为我删除了将其添加到图表的部分),但当下一行代码执行公式应用时——没有大的红色X。没有显示数据,但也没有错误代码——所以我想这是一种改进?这让我相信,要么是我正在应用公式的初始数据集存在问题,要么是与图表控件本身的视图/边界有关的问题。如果我在这个方向上发现了任何更多的信息,我会发布第二个更新。

3个回答

3
我发现了我的问题来源:
priceseries.IsXValueIndexed = true;

我最初这样做是为了省略掉任何空数据点(在股票价格情况下,这将是周末)。当我将值更改为false时,突然间公式的应用就正常了。缺点是在没有数据的周末日期会留下空白!但这是另一个我可以自己解决的问题。
对于其他遇到此问题的人,请参阅以下参考文章以获取更多信息: http://msdn.microsoft.com/en-us/library/dd456699(VS.100).aspx 关于先对数据进行分组的提示不是闹着玩的。不要省略任何数据点!

2

我也遇到了同样的问题。

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

在我的代码中,它被设置为SeriesChartType.FastLine,这导致System.Drawing.dll抛出OverflowException异常。


1

大红色的X是遇到问题而放弃运行/解释公式的控件。也许这个公式对图表控件来说太复杂了,难以处理...也许,有一个更新版本的代码已经解除了限制。在codeplex.com上一定有相关内容。

同样,在设计时也可能发生这种情况,当设计一个表单时,拖动一个控件到上面,设置一些属性,然后出现一个大红色的X,这是控件在设计时不正常行为的常见情况。

希望这可以帮助您, 最好的问候, 汤姆。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接