【发布时间】:2013-10-24 21:10:29
【问题描述】:
我有这个代码:
private void Form1_MouseWheel(object sender, MouseEventArgs e)
{
if (leave == true)
{
if (e.Delta > 0)
{
if (timer1.Interval < 5000)
{
timer1.Interval += 1000;
label2.Text = (timer1.Interval/1000).ToString();
}
}
else
{
if (timer1.Interval == 1000)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / 1000).ToString();
}
}
}
}
设计器中的原始 timer1 间隔设置为 1000 毫秒。 在鼠标滚轮事件中,我做到了它会在几秒钟内显示在 label2 中。 事实上,当我向上移动鼠标滚轮时,它会减慢计时器并在几秒钟内显示它 1 2 3 4 5
问题在于我想要的第二部分,当它达到 1 秒或 1000 毫秒时,如果我将其保持向下,它将以 100 显示单位并将 timer1.interval 更改为 100 单位。
所以在 label2 中,如果它是 1 秒,那么现在我将看到 900 800 700 600 500 到 100。 并且 timer1 间隔也应该更改为 900 毫秒 800 700 600 直到 100。
当它达到 100 时就停下来,不要一直低于 100。
问题出在这部分:
if (timer1.Interval == 1000)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / 1000).ToString();
}
它根本不工作。
编辑**
我现在的代码:
if (leave == true)
{
if (e.Delta > 0)
{
if (timer1.Interval < 5000)
{
timer1.Interval += 1000;
label2.Text = (timer1.Interval / 1000).ToString();
}
}
else
{
if (timer1.Interval > 1000) {
timer1.Interval -= 1000;
label2.Text = (timer1.Interval / 1000).ToString();
}
else
if (timer1.Interval <= 1000 && timer1.Interval > 100)
{
timer1.Interval -= 100;
label2.Text = (timer1.Interval / (double)1000).ToString();
}
}
}
但现在如果我在 5 秒(5000 毫秒),现在我将轮子向下移动,计数 5 4 3 2 1 0 并停在 0
它不像以前那样显示在 1 ...0.9 0.8 0.7 以下。
【问题讨论】: