我一直在使用Visual Studio在C#中使用簡單的倒數計時器來在一段時間後關閉應用程序。簡單的倒計時應用程序C#不能正確顯示
但是,現在我所運行的是Windows窗體上的倒計時顯示。
我的問題是通過每個片步進時,邏輯似乎是聲音時,秒倒計時,分鐘計數關閉秒達到0等
然而,問題是在一秒之後,文本框從「剩餘1分59秒」到「剩餘1分1秒」顯示剩餘時間變化,並且似乎只是在那裏掛起,無論我讓應用程序運行多久。
我在這裏錯過了我的邏輯嗎?
謝謝大家提前。
下面是代碼:
int i_minutes = 1;
int i_seconds = 59;
public TestTimer()
{
InitializeComponent();
lb_TimeRemaining.Text = String.Format("{0} minutes {1} seconds remaining", i_minutes.ToString(), i_seconds.ToString());
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
//while the timer ticks
while (i_seconds != 0 && i_minutes != 0)
{
//if the seconds reaches 0, subtract a minute
if(i_seconds == 0)
{
i_minutes = i_minutes - 1;
//if the minutes are still not below 0, reset the seconds to 59
if (i_minutes >= 0)
{
i_seconds = 59;
}
}
//add a zero to seconds if its below 10
//so it displays such as 09, 08, etc
if (i_seconds < 10 && i_minutes != 0)
{
lb_TimeRemaining.Text = String.Format("{0} minutes 0{1} seconds remaining", i_minutes, i_seconds);
}
//if seconds are above 10, but minutes below 0, display as 0 minutes and seconds
else if (i_minutes < 0)
{
lb_TimeRemaining.Text = String.Format("0 minutes {1} seconds remaining", i_minutes, i_seconds);
}
//if the minutes are above 0, and seconds above 10, display as such
else
{
lb_TimeRemaining.Text = String.Format("{0} minutes {1} seconds remaining", i_minutes, i_seconds);
}
i_seconds = i_seconds - 1;
}
}
}
在if中更改您的值,並將計時器設置爲精確的1000毫秒間隔 – Steve