chart显示接收的实时数据时变成红叉??

dzone12345 2018-03-30 09:13:41
 string[] tmp = textBox1.Text.Split('\n');
int[] v = new int[tmp.Length];
for (int i = 0; i < tmp.Length-1; i++)
{
v[i] = Convert.ToInt32(tmp[i]);


series.Points.AddY(v[i]);

}

上面程序的textbox1是显示串口接收到的数据,
 textBox1.Text += bb + "\r\n";

textbox1接收没有问题,正常显示,如下图

实时显示数据曲线的chart就变成了红叉,

我又试了一下,如果发送数据的速度小于600ms就会出现红叉,如果大于600ms就不出现红叉,但是速度也太慢了啊,有什么好的办法解决这个问题吗??非常感谢!!
...全文
1140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chasmれ 2018-04-13
  • 打赏
  • 举报
回复
                        //  添加标签和值,AddXY(X轴标签,Y值)    
                         chart1.Series[0].Points.AddXY(model.ProjectNumber, Int32.Parse(model.ProjectCount));
                         chart1.Series[1].Points.AddXY(model.ProjectNumber, Int32.Parse(model.NumberRemaining));  
xuzuning 2018-03-31
  • 打赏
  • 举报
回复
是吗? v[i] = Convert.ToInt32(tmp[i]); 当 tmp[i] 为 “A” 时, v[i] 等于多少?
xuzuning 2018-03-30
  • 打赏
  • 举报
回复
出现红叉是数据错误 你要确保 v[i] 都是合法的数据
xuzuning 2018-03-30
  • 打赏
  • 举报
回复
也就是 tmp[i] 都只是数字串
dzone12345 2018-03-30
  • 打赏
  • 举报
回复
为啥会出现红叉,难道速度太快了吗,应该不会吧!要怎么解决这个红叉的问题呢??
dzone12345 2018-03-30
  • 打赏
  • 举报
回复
v[i]是int类型,默认不是0吗?
exception92 2018-03-30
  • 打赏
  • 举报
回复
设定过数据类型之后,只有传入的数据类型不正确才会出现红叉,就你贴图来看接受的数据“56” 下边那一行是空字符串吧

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧