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); } } } }
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); } } }
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)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden