Entwickler-Ecke

WinForms - ListBox wird nicht gefüllt


MaWo80 - Fr 16.01.09 11:31
Titel: ListBox wird nicht gefüllt
Hallo, ich habe folgendes Problem. Ich bekomme Daten über den SerialPort zugesendet. diese Bearbeite ich und möchte Sie anschließend in eine Listbox schreiben. Wenn ich im Visual Studio die Anwendung step für step debugge, dann wird die Listbox gefüllt so wie ich das möchte. Wenn ich die Anwendung direkt laufen lasse, dann wird die Listbox nicht gefüllt.

Hier die 2 zuständigen Funktionen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
delegate void MessageDataDelegate(string data);

        private void SerialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {

            MessageDataDelegate dlgte = new MessageDataDelegate(MessageData);          
            string recvData = serialPort1.ReadExisting();
            this.BeginInvoke(dlgte, new object[] { recvData });                        
        }

        private void MessageData(string data)
        {
            //a = a.Replace("\r\n", " ");
            data = data.Replace("\r\n"" ");
            string Nutzdaten = "";
            int Nutzdatenstart = 0;
            Nutzdatenstart = data.IndexOf("8204");// gibt den Start von 8204 zurück
            if (Nutzdatenstart > 1)
            {
                Nutzdaten = data.Substring(Nutzdatenstart + 8);
                Nutzdaten = this.ConvertHexToAscii(Nutzdaten);
                lbxEingang.Items.Insert(0, Nutzdaten);
            }
        }


kann den Fehler jemand nachvollziehen ??

Moderiert von user profile iconKha: Quote- durch C#-Tags ersetzt


Christian S. - Sa 17.01.09 12:51

Hast Du mal geschaut, was passiert, wenn Du Invoke statt BeginInvoke benutzt? Ich bin mir nicht sicher, ob das was bringt, aber es ist der einzige Ansatzpunkt, der mir jetzt einfallen würde.