在我的表单应用程序中,我正在使用串行端口读取串行数据并将它们存储在列表中以供进一步使用。我有一个停止按钮事件,但单击该按钮时表单不会终止。表单包含显示从串行端口获得的解析值的文本框(通过单击一个名为“开始”的按钮启动解析过程)。我的目标是在按下停止按钮时暂停从串行端口接收数据。到目前为止,当单击“开始”按钮时,数据读取开始,但由于某种原因,“停止”按钮不起作用。
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.NewLine = "-";
RxString = serialPort1.ReadLine();
RxString = RxString.Replace("$", "");
this.Invoke(new EventHandler(DisplayText));
}
private void DisplayText(object sender, EventArgs e)
{
richTextBox1.AppendText(RxString);
GlobalList.AddRange(parsed());
displayglobal();
graphs();
}
private void Start_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM32";
serialPort1.BaudRate = 9600;
serialPort1.DtrEnable = true;
serialPort1.Open();
if (serialPort1.IsOpen)
{
Start.Enabled = false;
Stop.Enabled = true;
richTextBox1.ReadOnly = false;
}
}
private void Stop_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
Start.Enabled = true;
Stop.Enabled = false;
richTextBox1.ReadOnly = true;
}