我有這樣的代碼:我如何從毫秒轉換爲秒單位以顯示在標籤中?
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開始。 –