Серийные события C #, когда серийный номер не находится в разработке - PullRequest
0 голосов
/ 19 декабря 2018

Я добавил это в своем коде:

namespace uartToCs_version_2._0
{
    public partial class formMain : Form
    {
    ==> public static SerialPort serial = new SerialPort();

Но я не использовал вкладку «Дизайн», поэтому как мне поступить с обработкой событий (при текущей настройке я могу использовать ее и в других формах?, это все еще будет возможно)? Мой файл дизайна

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018
  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 
    }
0 голосов
/ 19 декабря 2018

Вы можете зарегистрировать события в любом методе, например 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)
        {
        }

    }
...