串行不在设计中时的 C# 串行事件
C# serial events when the serial is not in design
我在我的代码中添加了这个:
namespace uartToCs_version_2._0
{
public partial class formMain : Form
{
==> public static SerialPort serial = new SerialPort();
但我没有使用设计选项卡,那么我应该如何处理事件(使用当前设置我也可以在其他形式中使用它,这仍然可行吗)?
My design file
您可以在任何方法(如 Load())或在构造函数中注册事件。我使用了下面的构造函数。在设置所有需要的属性之前,您无法注册事件。我没有显示设置代码。
public partial class Form1 : Form
{
public static SerialPort serial = new SerialPort();
public Form1()
{
InitializeComponent();
serial.DataReceived += new SerialDataReceivedEventHandler(serial_DataReceived);
}
private void serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
}
}
public Form1()
{
InitializeComponent();
//add DataReceived event of serial
Form1.serial.DataReceived += serial_DataReceived;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//remove DataReceived event of serial
Form1.serial.DataReceived -= serial_DataReceived;
}
void serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//process data here
}
我在我的代码中添加了这个:
namespace uartToCs_version_2._0
{
public partial class formMain : Form
{
==> public static SerialPort serial = new SerialPort();
但我没有使用设计选项卡,那么我应该如何处理事件(使用当前设置我也可以在其他形式中使用它,这仍然可行吗)? My design file
您可以在任何方法(如 Load())或在构造函数中注册事件。我使用了下面的构造函数。在设置所有需要的属性之前,您无法注册事件。我没有显示设置代码。
public partial class Form1 : Form
{
public static SerialPort serial = new SerialPort();
public Form1()
{
InitializeComponent();
serial.DataReceived += new SerialDataReceivedEventHandler(serial_DataReceived);
}
private void serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
}
}
public Form1()
{
InitializeComponent();
//add DataReceived event of serial
Form1.serial.DataReceived += serial_DataReceived;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//remove DataReceived event of serial
Form1.serial.DataReceived -= serial_DataReceived;
}
void serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//process data here
}