serial ort-一个cs里的SerialPort接收事件里,修改主程序label元素属性,不成功。

问题描述

一个cs里的SerialPort接收事件里,修改主程序label元素属性,不成功。

大家好,我是新手。请问,有两个cs,一个是SerialPort.cs,一个是Power.MainForm.cs.问题是在 SerialPort的接收事件里,修改主程序的label元素的属性,为什么不成功。代码如下。
//serialPort.cs
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)

{

  byte[] list = new byte[size];
 serial.Read(list,0,size);
 foreach(byte b int list)
{
 builder.Append(b.ToString...)
 }
 string str = builder.ToString();
 if(!"".Equals(str) && str.Contains("OA"))
 {
     PowerMainForm pf = new PowerMainForm();//这是主程序的UI界面
     pf.setValue(); // 问题就是这里进行执行了,没有效果。????
 }

}

//PowerMainForm的setValue()方法,是在PowerMainForm.cs里
public void setValue()
{
messageshow.show("开始显示");
label21.text = 'aa';
label23.visible = true;
}

解决方案

PowerMainForm pf = new PowerMainForm();//这是主程序的UI界面

你都new了一个了,还喝原来的主程序的界面有啥关系。你下面那个setValue是设置到你新建的那个里的label上去的,不是设置到你主程序的label上去的

解决方案二:

接收事件函数和主线程(你所说的主程序)运行在不同的线程,在图形界面的window程序里,不允许在其他线程中修改图形界面中的各种控件属性,要想修改必须通过一些消息等其他方法去更新。看看你的代码是不是违反了这一条

解决方案三:

我不知道你为什么要new一个主界面,直接访问不行吗?对于串口数据接收与显示,需要注意的是控件跨线程访问异常,这个时候需使用委托代理或者
关闭跨线程访问检测。。。

时间: 2024-10-02 09:25:07

serial ort-一个cs里的SerialPort接收事件里,修改主程序label元素属性,不成功。的相关文章

visual studio 2010-vs2010打包一个cs客户端安装后显示,发布者为china

问题描述 vs2010打包一个cs客户端安装后显示,发布者为china vs2010打包一个cs客户端安装后,在控制面板里显示发布者为china,我想把发布者改为自己,不知道在哪里更改 解决方案 在新建的打包项目中选择项目名称--属性---其中的(author属性就是) 这个属性中有你想要的所有的设置. 解决方案二: 这个是写入系统注册表的UNinstallString中的对应产品的guid信息. [HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninst

一个cs文件中的多个Main()方法如何处理

问题描述 一个cs文件中的多个Main()方法如何处理 解决方案 解决方案二:只留下一个.解决方案三:编译时指定要作为入口点的Main函数所在的类命令行下可以使用:/Main参数IDE下在属性里可以设置结贴吧,20分都给我,别给别人哦解决方案四:引用2楼CsToD的回复: 编译时指定要作为入口点的Main函数所在的类命令行下可以使用:/Main参数IDE下在属性里可以设置结贴吧,20分都给我,别给别人哦 解决方案五:一个类只允许有一个Main方法,如果需要传不通的参数,是不可以像函数重载那样来做

java-想做一个CS结构的系统,不需联网,请问该是用什么框架,还有设计模式用哪种呀

问题描述 想做一个CS结构的系统,不需联网,请问该是用什么框架,还有设计模式用哪种呀 描述如题,使用java开发 spring hibernate ibatis struts统统不会呀 要学会需要多久 有速成教材吗 解决方案 cs的话纯Java+数据库就可以实现了啊 解决方案二: 要想把每一个框架学会肯定要花很多时间的,开始的时候并不一定要学会,知道怎么用就可以了,后面再在项目中慢慢学习扩展.没有速成教程的,想快一点都自己去搭建一个框架,整一个登录页面,后面自己去扩展里面的其他功能. 解决方案三

编程-两个孩子,一个孩子将a b c d 4个球放入一个只有一端开放的细管子里

问题描述 两个孩子,一个孩子将a b c d 4个球放入一个只有一端开放的细管子里 两个孩子,一个孩子将a b c d 4个球放入一个只有一端开放的细管子里,另一个孩子摸球,编程计算第二个孩子摸出来球的顺序 解决方案 假设第2个孩子只能从最外面的球往里面摸,有2种可能的程序: 1.程序可设计输入4个数,分别为a,b,c,d放入管子的顺序,如 1,3,2,4表示先放a,然后是c,接着是b,最后是d,那么拿出的顺序则相反,可以通过数组的倒序, 或者堆栈等等方法求出顺序 2.程序认为放入顺序是不确定的

u盘 编程-给u盘做一个隐藏分区,在隐藏分区里放一个程序,当u盘插上就运行那个程序

问题描述 给u盘做一个隐藏分区,在隐藏分区里放一个程序,当u盘插上就运行那个程序 求大神帮忙!!给u盘做一个隐藏分区,在隐藏分区里放一个程序,当u盘插上就运行那个程序.这个程序是给u盘加密的,只有解密成功后才能读写u盘. 解决方案 你这个隐藏分区,得从硬件上着手才能真正做到隐藏防不了低高格,还扯到了AUTORUN当心被kill掉 解决方案二: 你是要程序还是要代码啊?

获取手机相册的照片-打开一个应用,如何获取手机相册里的照片,大神支招啊

问题描述 打开一个应用,如何获取手机相册里的照片,大神支招啊 如果开发一个这样的应用,就像QQ那样更换QQ头像一样,想更换头像时肯定要去手机里的相册了 但是如何跳转到手机相册呢 ,如何获取手机相册里的照片信息呢 ,又如何保存相册里的图片在你开发的一个这样的应用呢 求大神支招啊 拜托拜托了 解决方案 http://www.open-open.com/lib/view/open1425530122072.html 解决方案二: http://download.csdn.net/detail/lmj6

vba-我想在VBA中将一个任意对象复制到一块内存里,或存入数据库中,咋办?

问题描述 我想在VBA中将一个任意对象复制到一块内存里,或存入数据库中,咋办? 比如,我在EXCEL中,写了如下: private sub test() dim temp() as byte '如下一句是我想象的,我想将thisWorkBook.Sheet1对象复制到temp数组 Redim temp(对象长度) CopyMemory ptr(temp(0)), ptr(sheet1), 对象长度 '如此这般,我就可以将这个对象写入数据库中了 end sub 但应该怎么做呢,C++用久了我觉得这

cs-求一个CS的touch脚本,关于一个小游戏的

问题描述 求一个CS的touch脚本,关于一个小游戏的 求一个CS脚本,可以让物体在手机屏幕上随着手指运动而运动的脚本

bytestoread-c#SerialPort接收数据的问题

问题描述 c#SerialPort接收数据的问题 有时候我只发了一次或者几次后我的串口能一直收到相同的数据,几率还挺大的,读取serialPort.BytesToRead是一直有的,而且是在serialPort.Read完serialPort.BytesToRead清零了之后还是一直能读到的,实际没有发数据的,如果这时候我手动发数据的话这种现象就会停止,但是用串口调试助手也没出现这种情况,请问是为什么怎么解决?谢谢! 解决方案 清空接收的变量,休息一会儿再看代码