private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();
            
        }        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            //在这里控制
            //如果接收到aa,则form2.show(),form3.BackColor=color.red;
            //如果接收到bb,则form2.show();form3.BackColor.color.blue;
            //如此根据接收的数据不通打开或关闭窗口,并保证每次只打开一个窗口;
        }
能给个例子么

解决方案 »

  1.   

    这个可不是委托,这个是事件class serialPort1
    {
        public delegate void DataReceivedEventHandler(object sender,System.IO.Ports.SerialDataReceivedEventArgs e) //申明委托
            public event  DataReceivedEventHandler DataReceived;//挂接事件
       public void Open()//事件触发函数
      {
          DataReceived(this, new System.IO.Ports.SerialDataReceivedEventArgs(){value="aa"});//调用事件
       }
    }//自定义行为参数
    class System.IO.Ports.SerialDataReceivedEventArgs :EventArgs 
    {
      public string value;
    }调用方式private void Form1_Load(object sender, EventArgs e)
            {
    serialPort1.DataReceived+=new EventHandler(serialPort1_DataReceived)
                serialPort1.Open();//调用该函数,将会触发事件通知
                
            }private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                //在这里控制
                //如果接收到aa,则form2.show(),form3.BackColor=color.red;
                //如果接收到bb,则form2.show();form3.BackColor.color.blue;
                //如此根据接收的数据不通打开或关闭窗口,并保证每次只打开一个窗口;
    if(e.value=="aa")
      {
      }
            }
      

  2.   

    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                byte[] data = Convert.FromBase64String(serialPort1.ReadLine());
                textBox1.Text = Encoding.Unicode.GetString(data);
                serialPort1.Close();
            }