Infolink

 

Search This Blog

Nov 5, 2012

How to create a countdown timer application using C# and WinForms

In this tutorial I will explain how to create a countdown application in C#. For this application I did not declare any additional namespaces.

1. Create a standard C# Windows Forms application:





2. For the newly created form, set the FormBorderStyle property to FixedToolWindow:




Also, set the form Text property to "Countdown Timer" or whatever you want, so you can easily identify the form.

3. Add the following controls to the form:

  •     GroupBox (set its Text property to "Activity");
  •     Label (set its Text property to "Set time:");
  •     3 TextBox controls (textBox1 (for hours), textBox2 (for minutes), textBox3 (for seconds));
  •     3 Label controls (set their Text property to "hrs", "min" and "sec" respectively);
  •     Label (set it's Text property to "Message:");
  •     TextBox (textBox4 - - this will contain the message shown at the end of the countdown process);
  •     3 Button controls (button2 - ">" (start the timer), button1 - "| |" (pause the timer), button3 - "[ ]" (stop the timer));
  •     5 Label controls (lblHr - display the hours, lblMin - display the minutes, lblSec - display the seconds; between these three Label controls add two Label controls with the text ":" on them; also change the font size for these labels to 19 or bigger);
  •     Timer (set the Interval property to 1000);


The form should look like this:


1. Declare the main variables:
    public int seconds; // Seconds.
    public int minutes; // Minutes.
    public int hours;   // Hours.
    public bool paused; // State of the timer [PAUSED/WORKING].

2. The code for the starting button:
private void button2_Click(object sender, EventArgs e)
            {
                if (paused != true)
                {
                    if ((textBox1.Text != "") && (textBox2.Text != "") && (textBox3.Text != ""))
                    {
                        timer1.Enabled = true;
                        button1.Enabled = true;
                        button2.Enabled = false;
                        button3.Enabled = true;
                        textBox1.Enabled = false;
                        textBox2.Enabled = false;
                        textBox3.Enabled = false;
                        textBox4.Enabled = false;
    try
    {
                        minutes = System.Convert.ToInt32(textBox2.Text);
                        seconds = System.Convert.ToInt32(textBox3.Text);
                    hours = System.Convert.ToInt32(textBox1.Text);
    }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                    else
                {
                        MessageBox.Show("Incomplete settings!");
                    }
                }
                else
                {
                    timer1.Enabled = true;
                    paused = false;
                    button2.Enabled = false;
                    button1.Enabled = true;
                }
            }

3. The code for the pausing button:
    private void button1_Click(object sender, EventArgs e)
            {
                // Pause the timer.
                timer1.Enabled = false;
                paused = true;
                button1.Enabled = false;
                button2.Enabled = true;
            }

4. The code for the stopping button:
private void button3_Click(object sender, EventArgs e)
            {
                // Stop the timer.
                paused = false;
                timer1.Enabled = false;
                button1.Enabled = false;
                button3.Enabled = false;
                button2.Enabled = true;
                textBox4.Clear();
                textBox3.Clear();
                textBox2.Clear();
                textBox1.Clear();
                textBox1.Enabled = true;
                textBox4.Enabled = true;
                textBox3.Enabled = true;
                textBox2.Enabled = true;
                textBox1.Enabled = true;
                lblHr.Text = "00";
                lblMin.Text = "00";
                lblSec.Text = "00";
            }

5. The code for the timer:
private void timer1_Tick(object sender, EventArgs e)
            {
                // Verify if the time didn't pass.
                if ((minutes == 0) && (hours == 0) && (seconds == 0))
                {
                    // If the time is over, clear all settings and fields.
                    // Also, show the message, notifying that the time is over.
                    timer1.Enabled = false;
                    MessageBox.Show(textBox4.Text);
                    button1.Enabled = false;
                    button3.Enabled = false;
                    button2.Enabled = true;
                    textBox4.Clear();
                    textBox3.Clear();
                    textBox2.Clear();
                    textBox1.Enabled = true;
                    textBox4.Enabled = true;
                    textBox3.Enabled = true;
                    textBox2.Enabled = true;
                    textBox1.Enabled = true;
                    lblHr.Text = "00";
                    lblMin.Text = "00";
                    lblSec.Text = "00";
                }
                else
                {
                    // Else continue counting.
                    if (seconds < 1)
                    {
                        seconds = 59;
                        if (minutes == 0)
                        {
                            minutes = 59;
                            if (hours != 0)
                                hours -= 1;
     
                        }
                        else
                        {
                            minutes -= 1;
                        }
                    }
                    else
                        seconds -= 1;
                    // Display the current values of hours, minutes and seconds in
                    // the corresponding fields.
                    lblHr.Text = hours.ToString();
                    lblMin.Text = minutes.ToString();
                    lblSec.Text = seconds.ToString();
                }
            }

Now, the controls are set up and the code is ready. You can now run the application and check its functionality. Note, that the values that the user sets as seconds, minutes and hours must be integers.

2 comments:

  1. ya it's very help to me thanking you.

    I want how to add this countdown timer app when i click on ADDTimer button in my from dynamically, and when i click one more time on ADD timer button then it add one more countdown app to my from dynamically.

    Please give suggetions or snipet of code to this problem.

    Thanking you

    ReplyDelete
  2. Create dynamic timer object...on page load..and every click of add timer...button then fire timer tick event dynamic ....

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...