Form1,form2都用串口。
串口实例在Form1.
form2引用并打开做了一些事情,HIDE之后,转到FORM1,这时候发现串口关闭了。为啥?
如果没有HIDE这句话就没有问题。
为啥HIDE就把串口给关闭了?

解决方案 »

  1.   

    看看什么时间调用了串口的Close方法,或者displose方法
      

  2.   

    form2都干嘛了,操作串口了?!HIDE之后,转到FORM1,再判断串口状态,关闭了再打开不就完了
      

  3.   


    Form2 打开串口之后,就是发送一些东西之类的。
    无论是HIDE,CLOSE等等,都会使得串口被关闭了。你的这个方法可以解决问题。不过会变得麻烦,比如是哪个串口啊,波特率是多少啊,这些得FORM2记录下来,FORM1来读取。
    更疑问的是:为啥就关了呢?
    我贴上我的代码:
    一下是FORM2的。        private void button18_Click(object sender, EventArgs e)
            {
                if (Form_1.comm.IsOpen)
                {
                    Form_1.comm.Close();                
                }
                else
                {
                    Form_1.comm.PortName = comboBox1.Text;
                    Form_1.comm.BaudRate = int.Parse(comboBox2.Text);
                    try
                    {
                        Form_1.comm.Open();
                    }
                    catch (Exception ex)
                    {
                        Form_1.comm = new SerialPort();
                        MessageBox.Show(ex.Message);
                    }
                }
                button18.Text = Form_1.comm.IsOpen ? "Close" : "Open";
            }
            private void button13_Click(object sender, EventArgs e)
            {
                this.Close();
            }一下是Form1的        private void button1_Click(object sender, EventArgs e)
            {
                comm.WriteLine("05");
            }
      

  4.   

    Form2最小化,串口也是被关闭。奇怪,高手在哪里。