Estoy tratando de hacer que un temporizador marque una vez por segundo en un winform, cuando busco consejos sobre cómo hacerlo encuentro muchas cosas sobre los hilos. Bueno, no me importan los hilos, porque todo lo que intento hacer es hacer un conteo regresivo de 60 a 0 en un minuto, luego parar. No creo que tengamos que recurrir a la computación en la nube para resolver este problema, pero en realidad soy un organismo de formularios web, por lo que estoy un poco oxidado sobre este tema. ¿Puede alguien que me señale un ejemploWinforms Timer for Dummies
Esto es lo que he intentado
private void button1_Click(object sender, EventArgs e)
{
this.timeLeft = 60;
this.label1.Visible = false;
this.button1.Visible = false;
gt = new Timer();
gt.Tick += new EventHandler(CountDown);
gt.Interval = 1000;
gt.Start();
}
private void CountDown(object sender, EventArgs e)
{
do
{
this.TimeBar.Value = timeLeft;
this.timeLeft -= 1;
} while (this.timeLeft > 0);
if (this.TimeBar.Value > 0) return;
gt.Stop();
this.label1.Visible = true;
this.button1.Visible = true;
}
Cualquier ayuda sería muy apreciada.
Y no olvide deshabilitar el temporizador después de que la cuenta regresiva haya terminado, de lo contrario, se encontrará con números negativos. –
Gracias, es bastante tarde aquí, por supuesto que no necesito el loop, doh! Gracias también por el enlace a los documentos de enhebrado del Sr. Skeet. :) –
@Martinho - Obligado, sí, eso me tiene a mí también :) –