Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-实时更新图表_C#_Charts - Fatal编程技术网

C#-实时更新图表

C#-实时更新图表,c#,charts,C#,Charts,恕我直言,我对堆栈溢出还不熟悉,但在研究我不喜欢的编程方法时,很长一段时间都将其作为一种资源使用 我读了一篇文章,试图找出如何让它实时更新自己,如果我需要使用图表来绘制传感器中的数据总量的话。为了测试它,我使用了一个计时器,每秒钟(1000毫秒)都在滴答作响。在我可以用这个传感器之前,我有两个值自动增加1 我目前面临的问题是图表本身不会更新,只会保持加载表单时绘制的方式图表1.Update(),我尝试在每秒重新创建图表之前/之后使用它。然而,不管怎样,结果都是一样的。我只是想知道是否有什么我没有

恕我直言,我对堆栈溢出还不熟悉,但在研究我不喜欢的编程方法时,很长一段时间都将其作为一种资源使用

我读了一篇文章,试图找出如何让它实时更新自己,如果我需要使用图表来绘制传感器中的数据总量的话。为了测试它,我使用了一个计时器,每秒钟(1000毫秒)都在滴答作响。在我可以用这个传感器之前,我有两个值自动增加1

我目前面临的问题是图表本身不会更新,只会保持加载表单时绘制的方式<代码>图表1.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();
    }
}
公共部分类表单1:表单
{
INTA=1;
int b=2;
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
//数据阵列。
字符串[]序列数组={“猫”,“狗”};
int[]pointsArray={a,b};
//设置调色板。
this.chart1.palete=ChartColorPalette.SeaGreen;
//设置标题。
本图1.标题添加(“宠物”);
//添加系列。
for(int i=0;i
您的代码有几个问题:

  • 计时器单击事件未连接。我知道这不是因为,否则你会得到一个例外告诉你
  • …您只能添加一个系列一次。您在每个
    计时器上都进行了此操作。勾选
    。该命令和所有其他设置命令应进入初始方法,如表单加载
我已经纠正了下面代码中的错误,但是,显然,这些数据还没有任何意义。 另外:虽然我添加了连接
计时器的代码。勾选
,但
按钮。单击
未连接。通常,您可以让设计器通过双击控件来连接控件的标准事件,或者通过双击属性页中控件的事件选项卡中的事件来完成此操作

int a = 1;
int b = 2;
string[] seriesArray = { "Cats", "Dogs" };

private void Form1_Load(object sender, EventArgs e)
{
    // Set palette.
    this.chart1.Palette = ChartColorPalette.SeaGreen;

    // Set title.
    this.chart1.Titles.Add("Pets");

    // Add series
    this.chart1.Series.Clear();
    for (int i = 0; i < seriesArray.Length; i++)
    {
        chart1.Series.Add(seriesArray[i]);
    }
    // hook up timer event
    timer1.Tick += timer1_Tick;
}




private void timer1_Tick(object sender, EventArgs e)
{
    a++;
    b++;

    // Data array
    int[] pointsArray = { a, b };

    for (int i = 0; i < seriesArray.Length; i++)
    {
        // Add point.
        chart1.Series[i].Points.Add(pointsArray[i]);
    }

}

private void button1_Click(object sender, EventArgs e)
{
    timer1.Start();
}
inta=1;
int b=2;
字符串[]序列数组={“猫”,“狗”};
私有void Form1\u加载(对象发送方、事件参数e)
{
//设置调色板。
this.chart1.palete=ChartColorPalette.SeaGreen;
//设置标题。
本图1.标题添加(“宠物”);
//添加系列
this.chart1.Series.Clear();
for(int i=0;i
查看您是否尝试使用而不是.Update()?这两种方法都不是必需的。计时器启动了吗?你打勾了吗?