串行不在设计中时的 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 
    }