domingo, 10 de octubre de 2010

Cuenta Regresiva con C#

Que tal buen día aqui les dejo el código para un contador regresivo con C#, espero que al menos a uno les sea útil. Trataré de realizar más aplicaciones y subir el código.
Saludos.
**************************************************************************************************************************************************************************

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

//*******************************************
//Follow me on Twitter: @so_physical **
//*******************************************

namespace Counter
{
public partial class Form1 : Form
{
//Variables
//Aquí se especifica el lapso de tiempo deseado.
int horas = 01, mins = 10, segs = 03;
string hr, minutos, segundos;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//Parametros del Timer
Reloj.Interval = 1000;
Reloj.Enabled = true;

//Mantenemos Oculto el Windows Media Player
Player.Visible = false;
}

private void Reloj_Tick(object sender, EventArgs e)
{
//Disminuimos de 1 en 1 los segundos;
segs = segs - 1;

//En caso de que se agote la cuenta, ordenamos lo que debe hacer
//en este caso debe Inactivar el Timer
//Esconder el Contador
//Mostrar el WMP y ejecutara el video
if ((horas == 00) & (mins == 0) & (segs == 0))
{
Reloj.Enabled = false;
ContadorLbl.Visible = false;

Player.Visible = true;
//De preferencia que sea una carpeta en raíz, de esta forma una vez que
//se instale la aplicación en cualquier máquina no tendremos problemas de
//acceso al archivo.
Player.URL = @"C:";
}

//En caso cpntrario seguira disminuyendo los segundos de uno en uno y cuando
//el valor sea -1 le asignara el valor de 59 y restara un minuto, asi mismo cuando
//el valor de minutos sea el equivalente a -1 le asignara el valor de 59 y restara uno al
//al valor de las horas.
else
if (segs == -1)
{
segs = 59;
mins = mins - 1;
}
if (mins == -1)
{
mins = 59;
horas = horas - 1;
}
//Pasarlas al Label

hr = horas.ToString();
minutos = mins.ToString();
segundos = segs.ToString();

if (hr.Length < 2)
hr = "0" + hr;
if (minutos.Length < 2)
minutos = "0" + minutos;
if (segundos.Length < 2)
segundos = "0" + segundos;

ContadorLbl.Text = hr + ":" + minutos + ":" + segundos;

}


}
}

4 comentarios:

  1. Thanks man, me sirvio muy bien
    Saludos!

    ResponderEliminar
  2. Oye... muchas gracias. Me funcionó parte del código... aunque nos gustaría seguro que el código fuera más limpio.

    Me salvaste... bye.

    ResponderEliminar
  3. amigo tome algunas partes del codigo peroo el timer no se ve, se supone qe lo tengo qe imprimir en un lbl pero no se pone la cuenta regresiva y yo le puse 15 segundos nadamas, no use horas ni minutos y pasan los 15 segundos y no pasa nada.. y tampoco entendi mucho para que era lo de
    if (segundos.Length < 2)
    segundos = "0" + segundos;
    me podrias explicar y ayudarme
    gracias(:

    ResponderEliminar
  4. Muchas Gracias, he estado 1 hroa buscando ejemplo y esto sin duda el mejor. Facil de adaptar a mi comentido, grcias :)

    ResponderEliminar