countdown clock


How can I create a countdown clock 9 to zero?


DispatcherTimer tmr = new DispatcherTimer();
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += OnTimerTick;
            tmr.Start();
        }
        void OnTimerTick(object sender, EventArgs args)
        {
            textBox1.Text = DateTime.Now.ToString();
        }
VBdotnet2005Asked:
Who is Participating?
 
hosneylkConnect With a Mentor Commented:
I just tried this..
        int countDown = 9;
        DispatcherTimer tmr = new DispatcherTimer();

        public Form1()
        {
            InitializeComponent();
            
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += OnTimerTick;
            tmr.Start();
        }
        void OnTimerTick(object sender, EventArgs args)
        {
            textBox1.Text = countDown--.ToString();
            if (countDown < 0) ((DispatcherTimer)sender).Stop();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            tmr.Stop();
            countDown = 9;
            tmr.Start();
        }

Open in new window

0
 
käµfm³d 👽Commented:
Set your DispatchTimer to be class-level. Then add a private variable to hold the value you want to display. In the Tick event, display and decrement the value.
public partial class Form1 : Form
{
    private DispatcherTimer tmr;
    private int value;

    public Form1()
    {
        InitializeComponent();

        this.tmr = new DispatcherTimer();
        this.value = 9;
        this.tmr.Interval = TimeSpan.FromSeconds(1);
        this.tmr.Tick += OnTimerTick;
        this.tmr.Start();
    }

    void OnTimerTick(object sender, EventArgs args)
    {
        textBox1.Text = this.value.ToString();
        this.value--;
    }
}

Open in new window

0
 
hosneylkCommented:
and to stop it at 0..
void OnTimerTick(object sender, EventArgs args)
    {
        textBox1.Text = value--;
        if (value == 0) tmr.Stop();
    }

Open in new window

0
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

 
hosneylkCommented:
       int countDown = 9;

        public Form1()
        {
            InitializeComponent();
            DispatcherTimer tmr = new DispatcherTimer();
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += OnTimerTick;
            tmr.Start();
        }
        void OnTimerTick(object sender, EventArgs args)
        {
            textBox1.Text = countDown--.ToString();
            if (countDown < 0) ((DispatcherTimer)sender).Stop();
        }
0
 
käµfm³d 👽Commented:
lol...   I even watched the darn thing print "-1" and I told myself, "I need to put a stop condition in there..."  I must be tired  :)
0
 
VBdotnet2005Author Commented:

When click the second time, textbox4.txt time does not reset.
I tried  tmr.stop & tmr.start, it went to - 2 and so on.


 int countdown = 9;
   


private void Star_countdown()
        {
           
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += onTimerTick;
       
           
        }
        void onTimerTick(object sender, EventArgs args)
        {
            textBlock4.Text = countdown--.ToString();
            if (countdown < 0) ((DispatcherTimer)sender).Stop();

        }
       
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            star_countdown();
            tmr.start();


      }
0
 
hosneylkCommented:
try this
private void Star_countdown()
        {
           countDown = 9;
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += onTimerTick;
       
           
        }

Open in new window

0
 
VBdotnet2005Author Commented:
not right still...
0
 
VBdotnet2005Author Commented:
it still does not reset it
0
 
hosneylkCommented:
call Star_countdown() only once (like in form initialize)

int countdown = 9;
private void Star_countdown()
        {
            tmr.Interval = TimeSpan.FromSeconds(1);
            tmr.Tick += onTimerTick;
       
           
        }
        void onTimerTick(object sender, EventArgs args)
        {
            textBlock4.Text = countdown--.ToString();
            if (countdown < 0) ((DispatcherTimer)sender).Stop();

        }
       
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            tmr.Stop();
            countDown = 9;
            tmr.Start();


      }

Open in new window

0
 
VBdotnet2005Author Commented:
it displays nothing
0
 
hosneylkCommented:
you need to put tmr.Start() within Star_countdown. And make sure you call it first.
0
 
VBdotnet2005Author Commented:
I don't need to call Star_countdown inside btnSubmit? Still not working.
0
 
VBdotnet2005Author Commented:
Yes, it works!!! must have been late at night kind of thing. Thank you very much
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.