C#中如何让字符数组通过串口实时显示在多个Textbox中? 单个Textbox已可以自动逐行显示 10C

图片说明
图片说明
有程序解释最好,谢谢帮助哦! (51单片机串口发送)

 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)             //串口接收事件
        {
            int i = 1;
            if (!radioButton3.Checked)     //接收为字符模式
            {                
                string str = serialPort1.ReadExisting();   //字符串方式读取
                textBox9.AppendText(str);//添加内容


                }  
                    else                   //如果接收模式为数值模式
                    {
                        byte[] data = new byte[serialPort1.BytesToRead];             //定义缓冲区,因为串口事件触发时有可能收到不止一个字节
                        serialPort1.Read(data, 0, data.Length);               //读取数据
                        foreach (byte Member in data)                                                   //遍历用法
                        {
                            string str = Convert.ToString(Member, 16).ToUpper();
                            textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");     //文本框显示1
                            //上一句等同于 if(str.Length==1) 
                            //str = '0' + str;
                            //else
                            //str = str;
                            //textBox1.AppendText("0x" + str);  
                        }
                    }
        }

图片说明
我是用51单片机逐个字符发送的

4个回答

你这个应该用到了定时器吧?不知道你这个数据读取完毕要多长时间,如果很短的话,可以等数据加载完,就是你textbox9显示完,然后将textbox9的值去空格赋值给数组,然后就是一一对应赋值到每个textbox中了

qq_33869371
hy-lscj 这个我设置的是实时接收的,实时显示,点击关闭端口才退出,终止接收
2 年多之前 回复

监听com1端口 ,捕获数据后,fill to textbox.

qq_33869371
hy-lscj C#我刚刚学,问下如何监听com1端口? 先把5个字符为一组取出来存在字符数组里,对不?
2 年多之前 回复

string str = "123/456/789";
string[] plist = str.Split('/');

对应写到格子里就好了

qq_33869371
hy-lscj 回复qq_33869371: 问下,字符串数组如何在格子里显示哦?谢啦
2 年多之前 回复
qq_33869371
hy-lscj 我试下
2 年多之前 回复

遍历数组,然后将每个数组成员分别填充到对应的textbox中去

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐