我有这样的代码:我如何从毫秒转换为秒单位以显示在标签中?
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();
}
}
}
}
在设计师最初的定时器1间隔设置为1000毫秒。 在鼠标滚轮事件中,我做了它,它将在label2中显示untis在几秒钟内。 事实上,当我在几秒钟内移动鼠标滚轮其减缓了计时器,并显示它1 2 3 4 5
的问题是与第二部分我想的是,当其变得到1秒或1000毫秒,如果我将继续下去它会显示单位为100,并以100单位更改timer1.interval。
所以在标签2,如果它是在1秒钟,现在我会看到900 800 700 600 500未直到100 同时,也是定时器1区间应该是900毫秒800 700 600,直到变化100
当其get到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之下,就像以前一样。
史蒂夫你的变化正在为底部工作,但一旦我得到1秒和以上我不能再次下来。我能得到的最大值是在上面5秒(5000毫秒)。但如果我在2 3 4或5秒内不能再次改变它。为什么会停留在1000ms以上的时间间隔?上半部分timer1.Interval <5000是相同的我没有改变它。只有底部。 –
@DoronMuzar只有当间隔小于等于1000时才会减少间隔。当间隔小于1000时,还需要减小间隔。我为答案增加了一些额外的逻辑。 – Steve
史蒂夫在我的问题上请看几秒钟,用当前的代码更新它,就像我从你的例子中做的那样。但是现在,如果我在5秒钟后退回到5 4 3 2 1 0并按住0停止,它的剂量从之前的1 0.9 0.8 0.7 0.6开始。 –