Frage von Benni517, 14

Label in WinForm über Thread ändern C#?

Also ich habe folgenden Code in einem Thread

using (Ping p = new Ping())
try
{
label1.Text = "NL\r\n" + p.Send("155.133.248.16").RoundtripTime.ToString() + "ms";
} catch { label1.Text = "NA";
}

Wie kann ich jetzt das Label in der WinForm ändern? Weil wenn ich den Code so starte kommt ein error der mir sagt das das nicht funktioniert.

Antwort
von KnorxyThieus, 7

Hallo,

das mit dem Invoke geht wie folgt:

label1.Invoke((Action) (() => label1.Text = "..."));

Kann sein, dass es stattdessen auch BeginInvoke war, probier es einfach aus ... :)

Hierfür bietet sich oft übrigens auch eine Helfermethode an. :-)

Antwort
von Mikkey, 8

Du schreibst eine Methode, die das Ändern des Labeltexts erledigt und rufst diese per "Invoke" oder "BeginInvoke" auf.

Kommentar von Benni517 ,

und wie genau code Beispiel (Hab mich mit Threads noch nicht beschäftigt)

Kommentar von Mikkey ,

In den Richtlinien ist das Beauftragen anderer User nicht gestattet.

Du wirst sicher in der Lage sein, die beiden genannten Funktionen in der Hilfe zu finden.

Kommentar von KnorxyThieus ,

Das ist kein Auftrag (sonst wäre "Erklär mir dies!" auch einer).

Keine passende Antwort gefunden?

Fragen Sie die Community