【发布时间】:2012-01-09 16:49:33
【问题描述】:
我有 2 个计时器。其中之一是在每次滴答作响时计数;而使用稳定的间隔,或一个随机生成。第二个计时器倒计时到第一个计时器的下一个滴答声。
目前我正在这样做:
private void btnStart_Click(object sender, EventArgs e)
{
nextClick = int.Parse(nudClickInterval.Value.ToString());
if (nudPlusMinus.Value != 0) tmrClickInterval.Interval = random.Next( int.Parse(nudClickInterval.Value.ToString()) - int.Parse(nudPlusMinus.Value.ToString()), int.Parse(nudClickInterval.Value.ToString()) + int.Parse(nudPlusMinus.Value.ToString()));
else tmrClickInterval.Interval = int.Parse(nudClickInterval.Value.ToString());
tmrClickInterval.Start();
}
private void tmrClickInterval_Tick(object sender, EventArgs e)
{
if (nudPlusMinus.Value == 0) tmrClickInterval.Interval = int.Parse(nudClickInterval.Value.ToString());
else tmrClickInterval.Interval = random.Next(int.Parse(nudClickInterval.Value.ToString()) - int.Parse(nudPlusMinus.Value.ToString()), int.Parse(nudClickInterval.Value.ToString()) + int.Parse(nudPlusMinus.Value.ToString()));
tmrNextClick.Interval = tmrClickInterval.Interval / 10;
tmrNextClick.Start();
content++;
nextClick = tmrClickInterval.Interval;
label1.Text = content.ToString();
}
private void tmrNextClick_Tick(object sender, EventArgs e)
{
if (nextClick <= 0) tmrNextClick.Stop();
else
{
nextClick = nextClick - (tmrClickInterval.Interval / 10);
lblNextClickCount.Text = (nextClick / 100).ToString();
}
}
我通过使用第一个计时器的间隔除以 10 来设置倒计时计时器的间隔。问题是我不断收到一些错误,例如:Value '0' is not a valid value for Interval. Interval must be greater than 0. at line:tmrNextClick.Interval = tmrClickInterval.Interval / 10;。
我不确定如何避免我的错误,所以我认为可能有更好的方法来倒计时直到下一个计时器滴答作响。另外,我希望以稳定的间隔倒计时,但我很困惑,不知道如何解决这个问题。
希望得到一些帮助。
【问题讨论】: