新手求救:关于委托与事件的问题
我在一个关于串口操作的项目里,利用一个窗体来对串口进行读写操作。
config.cs窗体用来设置参数及收发指令。
Comm.cs类用来执行收发工作。
我的想法是当串口接收到数据后,config.cs窗体上自动弹出一个MessageBox。我采用了委托与事件方式。
代码如下,现在的问题是:在config.cs中设置串口参数及发送指令都正常,但是接收就不行了,用断点监控Comm.cs文件,可以确定串口是有接收有内容,但就是无法反馈到config.cs窗体上并自动弹出MessageBox.
不好意思,初学c#,对事件和委托感到很糊涂。总找不出问题出在哪里。还望高手们指点下迷津啊。
config.cs窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SerialPort_WR
{
public partial class Config : Form
{
private Comm comm;
public string spName;//serialPort.PortName
public int spBaudRate;//serialPort.BaudRate
public System.IO.Ports.StopBits spStopBits;//serialPort.StopBits;
public int spDataBits;//serialPort.DataBits
public System.IO.Ports.Handshake spHandShake;//serialPort.HandShake
public System.IO.Ports.Parity spParity;//serialPort.Parity;
public Config()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
PortSetupInit();
}
public void PortSetupInit()
{
//扫描所有串口
foreach (string P in System.IO.Ports.SerialPort.GetPortNames())
{
cB_PortName.Items.Add(P);
}
cB_PortName.SelectedIndex = 1;
cB_BaudRate.SelectedIndex = 9;//波特率
cB_DataBits.SelectedIndex = 3;//数据位
cB_Handshake.SelectedIndex = 2;//流控制
cB_Parity.SelectedIndex = 0;//校验位
cB_StopBits.SelectedIndex = 0;//停止位
cB_SchTak.SelectedIndex = 0;//查询时间
//serialPort1.RtsE