请耐心等待,我是新来的Stack Overflow助手,但在研究我不熟悉的编程方法时,我长期以来一直将其用作资源。
我阅读了一个C# Windows Forms应用程序中创建图形的教程,并试图找出如何使其实时更新,如果我需要使用图形来绘制传感器中的总数据量。为了测试它,我正在使用一个定时器,每秒钟(1000毫秒)滴答一次。在我使用这个传感器之前,我有两个值自动递增1。
我目前面临的问题是,图表本身不会更新,并且仅保持在加载表单时绘制的方式。我认为是因为我必须重新绘制图表才能更新
我阅读了一个C# Windows Forms应用程序中创建图形的教程,并试图找出如何使其实时更新,如果我需要使用图形来绘制传感器中的总数据量。为了测试它,我正在使用一个定时器,每秒钟(1000毫秒)滴答一次。在我使用这个传感器之前,我有两个值自动递增1。
我目前面临的问题是,图表本身不会更新,并且仅保持在加载表单时绘制的方式。我认为是因为我必须重新绘制图表才能更新
chart1.Update();
,我尝试在每秒钟重新创建图表之前/之后使用它。然而,结果无论如何都是相同的。我只是想知道是否有什么我没有做或需要更改,以便实时更新图表。
这是当前代码所在的位置:
public partial class Form1 : Form
{
int a = 1;
int b = 2;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Data arrays.
string[] seriesArray = { "Cats", "Dogs" };
int[] pointsArray = { a, b };
// Set palette.
this.chart1.Palette = ChartColorPalette.SeaGreen;
// Set title.
this.chart1.Titles.Add("Pets");
// Add series.
for (int i = 0; i < seriesArray.Length; i++)
{
// Add series.
Series series = this.chart1.Series.Add(seriesArray[i]);
// Add point.
series.Points.Add(pointsArray[i]);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
a++;
b++;
// Data arrays.
string[] seriesArray = { "Cats", "Dogs" };
int[] pointsArray = { a, b };
// Set palette.
this.chart1.Palette = ChartColorPalette.SeaGreen;
// Set title.
this.chart1.Titles.Add("Pets");
// Add series.
for (int i = 0; i < seriesArray.Length; i++)
{
// Add series.
Series series = this.chart1.Series.Add(seriesArray[i]);
// Add point.
series.Points.Add(pointsArray[i]);
}
chart1.Update();
}
}