智慧土狼 2018-05-23 03:04 采纳率: 50%
浏览 3615
已采纳

C#多个窗口使用用一个串口接受数据问题

我在主窗口MainForm中设置了Static SerialPort,在主界面注册了一个监听事件,然后在调到子界
之前,我注销了监听事件,
serialPort.DataReceived -= new SerialDataReceivedEventHandler(serial_DataReceived);

 然后在子界面Calibration中使用了SerialPort,然后重新设置了监听事件:
 MainForm.serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceived2);

想实现的方式是:在子窗口关闭之前将监听事件取消,然后在主界面在重新设置监听事件,关闭子窗口后主界面实现的代码
calibrationForm = new Calibration( );
calibrationForm.ShowDialog();
if (calibrationForm.DialogResult == System.Windows.Forms.DialogResult.OK)
{
serialPort.DataReceived += new SerialDataReceivedEventHandler(serial_DataReceived);
}

但是现在的结果是回到主界面后返回的数据仍然在子窗口事件监听器中显示(通过Console打印返回的数据大小)


求大神指点!!!
  • 写回答

3条回答 默认 最新

    报告相同问题?

    相关推荐 更多相似问题

    悬赏问题

    • ¥15 想了2小时了,求解答
    • ¥15 python怎么自动填表、登录?
    • ¥15 python列表嵌套按条件合并
    • ¥15 VBA怎么把工作簿A中的第N列,复制到工作簿B中的第N列。
    • ¥20 除了狗屎npm, 推荐一些编写web应用的方式?
    • ¥30 如何对嵌套结构体进行动态内存分配
    • ¥15 为什么我使用mongotemplate聚合操作老是查不到数据,find查询就可以
    • ¥15 关于sprintf的几个问题
    • ¥15 不确定行列数的迷宫文件传入
    • ¥15 怎么解决kali linux从root文件夹里复制文件权限不够的问题