我有一个 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);
}
});
}
这是我尝试的方式。但图表无法更新。请帮忙。
提前致谢。