Witam serdecznie.
Chciałbym aby kontrola numericUpDown1 zmieniała wartość po odczytaniu danych z portu serialPort.:

epromout
god1120min1150okr1150god2123min2159okr2159god3123min3159okr3159
god1223min1259okr1259god2223min2259okr2259god3223min3259okr3259
//...
endep

W tym celu w zdarzeniu private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) inicjuje zmienne typu:

int num1= text.IndexOf("god11");
int num2= text.IndexOf("min11");

gdzie 11 to indeksy tablic np.: i,j ,a ostanie 2 cyfry to wartości np.:20 - dla godz11.
Teraz, aby te wartości wydobyć ze zmiennej text = serialPort1.ReadExisting(); (typu string) i wpisać je do kontrolki numericUpDown1.Value stosuję kod:

if (num1 == -1)
                {
                }
                    
                else
                {
                    try
                    {
                        
                        int value1 = int.Parse(text.Substring(6, 2));
                        this.Invoke(new EventHandler(delegate { numericUpDown1.Value = value1; }));               
                    }
                    catch
                    {

                    }
                } 

Problem w tym, że program dokonuje tego czasami nawet po kilkukrotnym wciśnięciu butona odczytu danych. Proszę o radę.
W załącznikach przesyłam ptrscr programu.