Читать из последовательного порта во многих формах - PullRequest
1 голос
/ 07 марта 2012

Я занимаюсь разработкой приложения для управления трафиком персонала.Приложение имеет 1 основную форму, чтобы показать, кто идет, и 1 форму ту регистрационные карты.У меня нет проблем с чтением данных с последовательного порта.моя проблема в том, что из основной формы перейти к форме регистрации и использовать последовательный порт и вернуться к основной форме произошла эта ошибка:

Невозможно вызвать 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
}

1 Ответ

0 голосов
/ 27 сентября 2014

попробуйте с этим,

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
}

Надеюсь, это поможет,

Привет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...