如何在代码运行时显示具有更改数据的图表

本文关键字:数据 代码 运行时 显示 | 更新日期: 2023-09-27 18:26:20

我在C#中有一个图表,但我希望看到在执行代码时绘制的点,尤其是因为完成代码需要5分钟或更长时间。这似乎只是显示了最终结果。我正在使用Microsoft Visual Studio Express 2013 C# Windows Form Application

问题:如何在执行代码时获得图表以显示正在绘制的点?

示例:不显示已经填写了点(0,0)、(1,1)、(2,2)等的最终图表,如何在执行代码时显示此图表?所以,当它击中要绘制(0,0)的代码时,我实际上看到了它,当它碰到要绘制(1,1)的代码的那一刻,它就在两点之间建立了联系。

编辑:根据请求添加绘图代码。

// Plot the Points on Chart
public void plotPoints(double x, double y)
{
    DataPoint dp = new DataPoint();
    dp.XValue = x;
    dp.SetValueY(y);
    chart1.Series[0].Points.Add(dp);
}

如何在代码运行时显示具有更改数据的图表

这里有一个简单的代码示例,它以递增方式绘制线条。UI没有响应。如果你不喜欢,你将不得不在另一个线程上进行计算,这对于堆栈溢出的答案来说真的太大了。

    private void Form1_Load(object sender, EventArgs e) {
        var t = new Timer();
        t.Tick += DrawGraph;
        t.Interval = 1000;
        t.Enabled = true;
        t.Start();
    }
    private void DrawGraph(object sender, EventArgs e) {
        var rng = new Random();
        Graphics g = this.CreateGraphics();
        while (true) {
            System.Threading.Thread.Sleep(1000);
            g.DrawLine(Pens.Black, rng.Next(Width), rng.Next(Height), rng.Next(Width), rng.Next(Height));
        }
    }

我建议使用WPF来实现这一点,因为实时绑定是"开箱即用"的,不需要自定义UI代码。