一只鱼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条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?