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

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条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥30 数据库范式转换,满足第三范式即可
      • ¥15 CygwinPortable 中 NumPy 无法安装
      • ¥15 vivado如何支持多维打包数组模式
      • ¥15 请问第13题到底应该怎么做
      • ¥15 stable diffusion报错问题
      • ¥20 数据可视化综合运用 导入npz文件以及读取内容
      • ¥15 倒计时汇编语言RTC实时时钟
      • ¥15 CCS安装出现Failed to create the part's controls
      • ¥15 请问有digital Fortran编译器吗
      • ¥15 用cst怎么仿真同轴馈线