gpt4 book ai didi

c# - MSChart滚动条实现+绘图

转载 作者:太空宇宙 更新时间:2023-11-03 16:48:20 25 4
gpt4 key购买 nike

我的 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 秒的帧显示,但是在设计 View 中,滚动条没有出现在我的图表下方,我不知道如何实现滚动条显示下一个 10 秒帧,目前当我点击滚动时它以 1 秒为步长滚动,所以在开始时它是 0 - 10,点击滚动,它是 1 - 11。我想要它所以当我点击滚动它会从 0-10 到 10-20。

我提到的另一个问题是每秒显示 170 个数据样本,

如果有人可以在我自己的基础上向我展示示例代码,以向我展示如何实现这一点,我将不胜感激,在此先感谢您!

最佳答案

我认为 cheedep 的评论是正确的。这是我将如何修改您的代码来做到这一点。您需要将 AxisScrollBarClicked 事件连接到您的图表。

    #region SetupChart()
public bool SetupChart()
{
try
{
//Here is where I create the chart scale to show 170 data points
this.view.chart.ChartAreas[0].AxisX.ScaleView.Size = 170;
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)
{
this.view.chart.Series["MySeries"].Points.AddXY(startSecond, item);
startSecond++;

}
return true;
}
catch (Exception ex)
{
this.ErrorMessage = ex.Message;
return false;
}
}

private void chart_AxisScrollBarClicked(object sender, System.Windows.Forms.DataVisualization.Charting.ScrollBarEventArgs e)
{
if (e.Axis == chart.ChartAreas[0].AxisX)
{
if (e.ButtonType == System.Windows.Forms.DataVisualization.Charting.ScrollBarButtonType.SmallIncrement)
chart.ChartAreas[0].AxisX.ScaleView.Position += 170;
else if (e.ButtonType == System.Windows.Forms.DataVisualization.Charting.ScrollBarButtonType.SmallDecrement)
chart.ChartAreas[0].AxisX.ScaleView.Position -= 170;
}
}

关于c# - MSChart滚动条实现+绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com