在另一个表单上更新图表(图表控件)

时间:2015-08-19 12:03:30

标签: c# forms winforms graph charts

我有一个 C#Windows窗体应用程序,其中包含 MainForm GraphView窗体。主要表单持续接收 来自USB端口的电流和温度值并存储在结构数组列表<> 中。在这些过程中,当我们单击主窗体中的按钮时,将打开另一个带有图表控件的窗体(GraphView)窗体,并使用

绘制图形。

X轴:以分钟为单位的时间, Y轴:mA电流, Y2轴:温度单位为°C,

我该怎么办?

在我的 MainForm

    public struct Record
    {
        public byte ChanelNumber;
        public UInt16 SerialNumber;
        public byte SampleNumber;
        public string ChanelVoltage;
        public string ChanelCurrent;
        public string ChannelTemparature;
    }

List<Record>[] ChannelRecords = new List<Record>[12];

ChannelRecords 将存储来自 USB端口的接收数据。

    private void btnGraph_Click(object sender, EventArgs e)
    {
        g = new GraphView();
        g.Show();
        Task task = new Task(SendToGraph);
        task.Start();
    }

    private void SendToGraph()
    {
        while (true)
        {
               g.UpdateGraph(ChannelRecords[0]);
        }

    }

GraphView格式

    public void UpdateGraph(List<MainForm.Record> Records)
    {
        this.Invoke((MethodInvoker)delegate
        {
            if (Records != null)
                for (int j = 0; j < Records.Count; j++)
                {
                    if ((j % 5) != 0) continue;
                    var CurVal = float.Parse(Records[j].ChanelCurrent);
                    var TempVal = float.Parse(Records[j].ChanelCurrent);
                    chart.Series[0].Points.AddY(CurVal);
                    chart.Series[1].Points.AddY(TempVal);

                }
        });
    }

这是我尝试的方式。但图表无法更新。请帮忙。

提前致谢。

0 个答案:

没有答案