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

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条)

报告相同问题?

悬赏问题

  • ¥15 labelme打不开怎么办
  • ¥35 按照图片上的两个任务要求,用keil5写出运行代码,并在proteus上仿真成功,🙏
  • ¥15 免费的电脑视频剪辑类软件如何盈利
  • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
  • ¥15 pycharm中导入模块出错
  • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
  • ¥15 有关“完美的代价”问题的代码漏洞
  • ¥15 请帮我看一下这个简易化学配平器的逻辑有什么问题吗?
  • ¥15 暴力法无法解出,可能要使用dp和数学知识
  • ¥15 wpf通过绑定控件自身的值,来实现背景颜色的切换