一只鱼z 2017-05-18 08:47 采纳率: 66.7%
浏览 3282
已采纳

c#winform编写上位机串口接受到数据如何分开使用

首先已经编写完了上位机接收数据的程序也实现了在textbox控件中实时显示但是传上来的数据是一组xy坐标值我想如何可以在两个textbox控件中分别显示xy也就是把一组数据分开。因为后面还要利用xy值作图。目前我只能把xy一组数据放在一个textbox控件中达到实时更新数据或者使用Split、正则表达式对数据进行分割只能显示第一组分割后的数据但无法实时更新数据。图片说明
图片说明图片说明代码如下: private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{

        byte[] ReceivedData = new byte[sp.BytesToRead];//创建接收字节数组

                    sp.Read(ReceivedData, 0, ReceivedData.Length);//读取所接收到的数据
                    receivedDatas.AddRange(ReceivedData);


                     textBox3.Text = (Convert.ToInt32(textBox3.Text) + ReceivedData.Length).ToString();
        if (checkBox2.Checked)

        {
            textBox1.Text = Class1.ByteTo16Str(receivedDatas.ToArray());

        }
        else
        {
            textBox1.Text = Encoding.Default.GetString(receivedDatas.ToArray());
            //让文本框获取焦点
            string a = Encoding.Default.GetString(receivedDatas.ToArray());
            **string[] sArray = a.Split(',');
         //这里是进行分割数据,去掉这部分直接把a赋值给textbox就会实时显示但是在一个框里显示xy一组数据而不是一个数据x或者y
            textBox15.Text = sArray[0]; textBox16.Text = sArray[1];**

                 this.textBox15.Focus();
            //设置光标的位置到文本尾
            this.textBox15.Select(this.textBox1.TextLength, 0);
            //滚动到控件光标处
            this.textBox15.ScrollToCaret();
            this.textBox1.Focus();
            //设置光标的位置到文本尾
            this.textBox1.Select(this.textBox1.TextLength, 0);
            //滚动到控件光标处
            this.textBox1.ScrollToCaret();
        }
        // sp.DiscardInBuffer();//丢弃接收缓冲区数据
  • 写回答

1条回答 默认 最新

  • FEN_TA 2017-05-18 09:06
    关注

    textBox15.Text = sArray[0]; textBox16.Text = sArray[1];
    这里相当于是对textbox 里的text属性重新赋值了;
    可以改成textBox15.Text = textBox15.Text+“\n”+ sArray[0];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?