本帖最后由 bmw452745303 于 2011-06-26 12:36:33 编辑

解决方案 »

  1.   

    NEW 出来也不行呀,不能同时打开相同串口
      

  2.   

    一般情况下,如果没对控件属性做改动,那么serialPort2是fm1 的私有成员,在fm1外面是不能直接调用的。
    你可以在fm1中添加一公共方法,就可以使用了,如:public void SendMessage(string msg)
    {
        serialPort2.Write(msg);
    }
    另外,你serialPort2控件打开串口的位置不对,应该在MainForm的构造函数中打开。你打开serialPort2的代码要等到MainForm被关闭,程序结束之前才会被执行到。
      

  3.   

    打开串口我是用一个button做的,上面程序截取的位置有点不对。我把serialPort2已经设置成public了,它和public void SendMessage(string msg)
    {
        serialPort2.Write(msg);
    }用法是否能等同。
      

  4.   

    试了,不行呀 
    类1  public void serialPort2Write(string fm1)
            {
                this.serialPort2.Write(fm1); 
            }
      
    类2  private void button1_Click(object sender, EventArgs e)
            {
                MainForm fm1= (MainForm)this.Owner;
            
                 fm1.serialPort2Write("fm1");
                    
             }
     点击button1时 出现异常 NullReferenceException“未将对象引用设置到对象的实例”
    请帮忙处理一下谢谢。
      

  5.   

    给你个demo吧。留个邮箱或加我QQ107424627