目前做一个上位机软件,主窗体FrmMain的pannel控件加载两个子窗体FrmCOM和FrmMotor,两个在子窗体共用一个主窗体的串口。两个子窗体通过按键切换。
主窗体(FrmMain):
public static SerialPort serialportcom = new SerialPort();
子窗体都分别创建了接收数据事件:
子窗体FrmCOM:
FrmMain.serialportcom.DataReceived += new SerialDataReceivedEventHandler(serialportcom_DataReceived1);
public void serialportcom_DataReceived1(object sender, SerialDataReceivedEventArgs e)
子窗体FrmMotor:
FrmMain.serialportcom.DataReceived += new SerialDataReceivedEventHandler(serialportcom_DataReceived2);
public void serialportcom_DataReceived2(object sender, SerialDataReceivedEventArgs e)
感觉两个接收事件产生冲突,无论哪个子窗体,都无法接收到数据,屏蔽其中一个,另一个就接收正常。
请教各位,哪里存在的问题?多窗体共用一个串口接收事件应该如何编写?
我考虑加载其中一个窗体注销另外一个事件,如下:
子窗体FrmCOM:
FrmMain.serialportcom.DataReceived += new SerialDataReceivedEventHandler(serialportcom_DataReceived1);
FrmMain.serialportcom.DataReceived -= new SerialDataReceivedEventHandler(serialportcom_DataReceived2);
public void serialportcom_DataReceived1(object sender, SerialDataReceivedEventArgs e)
子窗体FrmMotor:
FrmMain.serialportcom.DataReceived += new SerialDataReceivedEventHandler(serialportcom_DataReceived2);
FrmMain.serialportcom.DataReceived -= new SerialDataReceivedEventHandler(serialportcom_DataReceived1);
public void serialportcom_DataReceived2(object sender, SerialDataReceivedEventArgs e)
还是不行,谢谢大家,急。
多窗体共用一个串口接收事件应该如何编写
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
- ¥15 pycharm输出和导师的一样,但是标红
- ¥15 想问问富文本拿到的html怎么转成docx的
- ¥15 我看了您的文章,遇到了个问题。