一只鱼z 2017-05-19 07:08 采纳率: 66.7%
浏览 2019
已采纳

c#winform编写上位机中实现动态坐标

在串口接收到一组一组的横纵坐标值,想把每一组横纵坐标分开使用,在两个textbox控件中分别显示横纵坐标。但是发现并没有实时更新都是只是串口接收到的第一组数据图片说明图片说明
程序如下:

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(',');
           // textBox15.Text = a;
            textBox15.Text = textBox15.Text +"\n"+sArray[0]; 
            textBox16.Text = textBox16.Text + "\n" + sArray[1];
          ![图片说明](https://img-ask.csdn.net/upload/201705/19/1495177633_459101.png)
            this.textBox15.Focus();
            //设置光标的位置到文本尾
            this.textBox15.Select(this.textBox1.TextLength, 0);
            //滚动到控件光标处
            this.textBox15.ScrollToCaret();
            this.textBox16.Focus();
            //设置光标的位置到文本尾
            this.textBox16.Select(this.textBox1.TextLength, 0);
            //滚动到控件光标处
            this.textBox16.ScrollToCaret();
            this.textBox1.Focus();
            //设置光标的位置到文本尾
            this.textBox1.Select(this.textBox1.TextLength, 0);
            //滚动到控件光标处
            this.textBox1.ScrollToCaret();
        }

        是需要timer控件还是怎么样可以实现呢?
  • 写回答

4条回答 默认 最新

  • FEN_TA 2017-05-19 08:57
    关注

    textBox1.Text = Encoding.Default.GetString(receivedDatas.ToArray());
    //让文本框获取焦点
    string a = Encoding.Default.GetString(receivedDatas.ToArray());
    string[] sArray = a.Split(',');
    int len = sArray.Length
    for(int i = 0 ;i<len; i +2){

    textBox15.Text = textBox15.Text +"\n"+sArray[i];
    textBox16.Text = textBox16.Text + "\n" + sArray[i+1];
    后面内容不变
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容