C#父窗体引用了一个串口组件serialport并执行打开操作,
现在想在子窗体上对串口进行读写操作,
有什么方法实现吗?

解决方案 »

  1.   

    把串口类设为public,然后在子窗体里面引用父窗体,就可以实现这样的操作。
    不过,这似乎不是好的编程风格
      

  2.   

    收到数据的DataReceived事件中更新子窗体和父窗体。串口对象不要传过去,否则,会竞争读取数据导致两边收的都不全。
      

  3.   

    在子窗体中定义处理 SerialPort 对象的数据接收事件的方法,将该方法挂接到父窗体SerialPort组件的DataReceived事件上
      

  4.   

      弱弱问句,你为什么要把serialPort刚在主窗体中
      相信你做个数据库编程吧,程序中每个窗体都要调用数据库,典型的解决方法写个 调用数据库的dataCon类,然后再每个窗体中 对这个类进行 new的操作
       同样,我建议你 把串口操作(窗口初始化,读写操作等)也写个具体类,这样也不错,也是面向对象的基本操作吧
       最后要提醒你下,从串口中读数据操作dataReceived操作是一个 独立的线程,如果想要和其他线程的数据操作,必须使用委托
      

  5.   

    弱弱问句,你为什么要把serialPort放在主窗体中
      相信你做个数据库编程吧,程序中每个窗体都要调用数据库,典型的解决方法写个 调用数据库的dataCon类,然后再每个窗体中 对这个类进行 new的操作
      同样,我建议你 把串口操作(串口初始化,读写操作等)也写个具体类,这样也不错,也是面向对象的基本操作吧
      最后要提醒你下,从串口中读数据操作dataReceived操作是一个 独立的线程,如果想要和其他线程的数据操作,必须使用委托