我正在尝试从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();
}
答案 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();
}