grey1987 Geschrieben 31. Juli 2008 Geschrieben 31. Juli 2008 hallo, ich hab ein form in dem ich ein Label hab. in dem label soll alle drei sekunden eine Zufallszahl erscheinen, tut es aber nicht. Wo isn da der Fehler? Oder versteh ich die Funktion von Tread Sleep falsch? Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Threading; using System.Windows.Forms; namespace Refresh_Text { public partial class Form1 : Form { private int Zufallszahl() { int los; Random Zahl = new Random(); los = Zahl.Next(1, 20); return los; } public Form1() { InitializeComponent(); label1.Text = "Irgend"; for (int i = 0; i < 5; i++) { label1.Text = Convert.ToString(Zufallszahl()); Thread.Sleep(3000); } } } } Zitieren
bi0s Geschrieben 2. August 2008 Geschrieben 2. August 2008 Hey, versuchs mal mit einem Timer. Da kannste einen Intervall eintragen das er alle x Sec eine ausgewählte funktion aufruft. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Threading; using System.Timers; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { public void TimerStart(Double Interval) { System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(Zufallszahl); aTimer.Interval = Interval; aTimer.Enabled = true; } private void Zufallszahl(object sender, EventArgs e) { int los; Random Zahl = new Random(); los = Zahl.Next(1, 20); label1.Text = Convert.ToString(los); } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TimerStart(3000); } } } Zitieren
LordHexa Geschrieben 4. August 2008 Geschrieben 4. August 2008 Habe jetzt leider nicht getestet ob die Idee von biOs so funktioniert, aber ich kann dir sagen, warum dein Versuch nicht klappt. Mit Thread.Sleep setzt und diesem Fall den Hauptthread auf Sleep. Sprich eben auch den Thread, der die Form anzeigt. Somit kann auch der Text des Labels nicht geändert werden. Ansonsten schau dir mal das hier an: DispatcherTimer Class (System.Windows.Threading) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.