以多种形式从串行端口读取
本文关键字:读取 串行端口 多种形式 | 更新日期: 2023-09-27 18:26:57
我正在开发一个用于管理人员流动的应用程序。该应用程序有一个显示谁要去的主表单和一个tu注册卡表单。我从串行端口读取数据没有问题。我的问题是当从主窗体转到注册窗体并使用串行端口,然后返回到主窗体时,发生了这个错误:
在创建窗口句柄之前,不能对控件调用Invoke或BeginInvoke
我的代码在这里:
void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
if (RFIDActive)
{
SerialPort sp = (SerialPort)sender;
RFIDSerial = sp.ReadLine();
this.Invoke(new EventHandler(ShowID));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
和:
private void ShowID(object sender, EventArgs e)
{
//Some Code to display personnel data
}
试试这个,
public delegate void GetData(string receivedData);
void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
if (RFIDActive)
{
SerialPort sp = (SerialPort)sender;
RFIDSerial = sp.ReadLine();
this.Invoke(new GetData(ShowID),RFIDSerial);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
和:
private void ShowID(string RFIDSerial)
{
//Some Code to display personnel data
}
希望有帮助,
问候。