【发布时间】:2011-02-23 15:40:11
【问题描述】:
我的 Windows 窗体中有一个 MSCHart 控件,用 C# 编码。基本上我有一组数据来填充图表。我需要对这些执行以下操作:
1) 在 10 秒内阅读图表 2) 在每 10 秒的帧中,我需要每秒从我的数组中绘制 170 个数据项。这将持续到最后。
抱歉,我知道这听起来有点冗长,但我已尽我所能来实现它,但我得到的结果只是失败了。
如果有人能帮我解释一下,我将不胜感激。
这是我到目前为止所做的一个片段
#region SetupChart()
public bool SetupChart()
{
try
{
//Here is where I create the chart scale to show frames of 10 secs
this.view.chart.ChartAreas[0].AxisX.ScaleView.Size = 10;
return true;
}
catch { return false; }
}
#endregion
#region Draw()
public bool Draw()
{
try
{
view.Data = this.dllCall.GetData(1);
int startSecond = 0;
foreach (Int16 item in view.Data)
{
//Here is where I read each element from my array, unsure how to plot 170 per second :S
this.view.chart.Series["MySeries"].Points.AddXY(startSecond, item);
startSecond++;
}
return true;
}
catch (Exception ex)
{
this.ErrorMessage = ex.Message;
return false;
}
}
从我上面的代码中可以看出,我让图表在开始时以 10 秒的帧显示,但在设计视图中,滚动条没有出现在我的图表下方,我不知道如何实现滚动条显示下一个 10 秒帧,当前当我单击以滚动它时,它以 1 秒的步长进行,所以在开始时它的 0 - 10,点击滚动,它的 1 - 11。我想要它,所以当我点击滚动它会从 0-10 到 10-20。
我提到的另一个问题是每秒显示 170 个数据样本,
如果有人可以向我展示我自己的示例代码,以向我展示如何实现它,我将不胜感激,非常感谢您!
【问题讨论】:
-
你应该在 AxisScrollBarClicked 事件中处理这个并设置 Scaleview.Position 值