1分钟倒数计时器

时间:2012-06-26 01:27:15

标签: c# visual-studio-2010 windows-phone-7

我正在尝试从1分钟做一个简单的倒数计时器,它显示在按钮文本中。当按下按钮时,我只想让它倒数到0,显示“倍数”。我一直在阅读我能找到的所有帖子,试图弄清楚如何做到这一点,但不能。有人能告诉我我做错了什么。

这是在visual c#windows phone应用程序中。我希望我的帖子显示正确,这是我第一次在这个网站上提问,我是新手。提前感谢您的任何建议。

void bTime_Click(object sender, RoutedEventArgs e)
    {
        DispatcherTimer timer1 = new DispatcherTimer();
        timer1.Interval = TimeSpan.FromSeconds(60);
        timer1.Tick += new EventHandler(timer_Tick);
        timer1.Start();
    }

    int tik = 60;
    void timer_Tick(object sender, EventArgs e)
    {
        bTime.Content = timer.ToString();
        if (tik > 0)
            Countdown.Text = (timer--).ToString();
        else
            Countdown.Text = "Times Up";
        throw new NotImplementedException();
    }

2 个答案:

答案 0 :(得分:8)

首先,摆脱throw new NotImplementedException。其次,你需要减少tik。所以像这样:

    DispatcherTimer timer1 = new DispatcherTimer();
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        timer1.Interval = new TimeSpan(0, 0, 0, 1);
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Start();
    }

    int tik = 60;
    void timer1_Tick(object sender, EventArgs e)
    {
        Countdown.Text = tik + " Seconds Remaining";
        if (tik > 0)
            tik--;
        else
            Countdown.Text = "Times Up";
    }

我已经改变了Interval,而且我每秒都在减少tik。很好,很简单。希望能帮助到你。如果你不明白,请告诉我。

答案 1 :(得分:3)

您的代码有什么问题?对我来说,它看起来像这些部分:

bTime.Content = timer.ToString();

bTime.Content = timer.ToString();

首先,我甚至不知道变量计时器是什么。它应该是timer1吗?

tik永远不会被减去,并且总是保持在60岁。

为什么不将代码更改为:

DispatcherTimer timer1 = new DispatcherTimer();
void bTime_Click(object sender, RoutedEventArgs e)
{
    timer1.Interval = TimeSpan.FromSeconds(60);
    timer1.Tick += new EventHandler(timer_Tick);
    timer1.Start();
}

int tik = 60;
void timer_Tick(object sender, EventArgs e)
{
    bTime.Content = tik.ToString();
    if (tik > 0)
        Countdown.Text = (tik--).ToString();
    else
    {
        Countdown.Text = "Times Up";
        timer1.Stop();
    }
    throw new NotImplementedException();
}