c#怎样能在textBox中动态显示串口接收到的数据

sanyejuzi1 2012-07-23 02:08:17
private void axMSComm1_OnComm(object sender, EventArgs e)
{
string strln = "";
string strln2 = "μGy/h";
string strln3 = "";
byte[] bytln;
object objln;

int i;

axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;
axMSComm1.InputLen = 8;
objln = axMSComm1.Input;
bytln = (byte[])objln;

if (bytln != null)
{
for (i = 0; i <= (bytln.Length - 1); i++)
{
strln += bytln[i].ToString("X");

}
switch (Convert.ToInt32(bytln[1])) //判断位置 {
case 65:
if ((bytln[4] << 8 | bytln[5]) < 100)
{
strln3 = "0" + (bytln[4] << 8 | bytln[5]);
}
else
strln3 = (bytln[4] << 8 | bytln[5]) + "";


textBox1.Text = "";

textBox1.Text = (bytln[2] << 8 | bytln[3]) + "." + strln3 + strln2;
break;
case 66:
if ((bytln[4] << 8 | bytln[5]) < 100)
{
strln3 = "0" + (bytln[4] << 8 | bytln[5]);
}
else
strln3 = (bytln[4] << 8 | bytln[5]) + " ";
textBox2.Text = "";
textBox2.Text = (bytln[2] << 8 | bytln[3]) + "." + strln3 + strln2;
//System.Threading.Thread.CurrentThread.Join(1000);


break;
default:
Console.WriteLine("无数据传送");

break;
}
这个代码只能显示刚运行接收的那个数据,而单步调试时,就可以看到TextBox中的数据是变动的,望各位前辈指点
...全文
626 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanyejuzi1 2012-07-23
  • 打赏
  • 举报
回复
能说具体点吗,我刚开始学
mizuho_2006 2012-07-23
  • 打赏
  • 举报
回复
DataRecieved事件中用委托对接收到的串口数据进行处理,然后对TextBox的Text属性赋值。
bdmh 2012-07-23
  • 打赏
  • 举报
回复
textBox2.Text后面加上Application.DoEvents();
或者采用异步,接收后,把内容发到内存,后台开一个线程,去处理数据,然后显示

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧