[英]C# Countdown Timer Then Do Something
隨處可見,但我隨處可見,有一種不同的方式可以進行倒數計時器。 終於找到了一些簡單的代碼。 時間到了,我該如何做。
這部分是InitializeComponent()的旁邊;
timerlabel1.Text = TimeSpan.FromMinutes(720).ToString();
private void countdownTimer()
{
var startTime = DateTime.Now;
var timer = new Timer() { Interval = 1000 };
timer.Tick += (obj, args) =>
timerlabel1.Text =
(TimeSpan.FromMinutes(720) - (DateTime.Now - startTime))
.ToString("hh\\:mm\\:ss");
timer.Enabled = true;
}
這是我需要幫助的地方,時間到了我該如何做。 我嘗試過timer.Enabled = false; 做這個。 無法弄清楚。
試試這個可能對你有用
var timer=new Timer();
timer.Interval=1000;
timer.tick += timer_Tick;
timer.Start();
int i=0;
void timer_Tick(object sender, EventArgs e)
{
if(i<TimeSpan.FromMinutes(720))
{
timerlabel1.Text =
(TimeSpan.FromMinutes(720) - (DateTime.Now - startTime))
.ToString("hh\\:mm\\:ss");
}
else
{
timer.Stop();
/* do other work Here */
}
i++;
}
試試這個可能對您有用。
由於有幾個可用的Timer
類( System.Windows.Forms.Timer
, System.Threading.Timer
和System.Timers.Timer
),我建議您使用System.Timers.Timer
。
它提供了Elapsed
事件,而不是Tick
事件。 這就是您要尋找的。
// Create a timer with a ten second interval.
aTimer = new System.Timers.Timer(10000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 2 seconds (2000 milliseconds).
aTimer.Interval = 2000;
aTimer.Enabled = true;
解決方案:您可以將總秒數[TotalMinutes*60]
分配給某個變量,並在每次Timer Tick
事件引發時decrement
。
如果totalseconds
值變為zero
則通過調用timer.Stop()
方法stop
計時器。
嘗試這個:
public int tootalsecs = 720 * 60;
private void countdownTimer()
{
var startTime = DateTime.Now;
var timer = new Timer() { Interval = 1000 };
timer.Tick += (obj, args) =>
{
if (tootalsecs==0)
{
timer.Stop();
}
else
{
timerlabel1.Text =
(TimeSpan.FromMinutes(720) - (DateTime.Now - startTime))
.ToString("hh\\:mm\\:ss");
tootalsecs--;
}
};
timer.Start();
}
您可以嘗試執行以下操作。
在全局范圍內初始化。
var target;
timerlabel1.Text =target= DateTime.Now.Add(TimeSpan.FromMinutes(720));
添加一個計時器,並在timer1_Tick
編寫以下代碼
var span = targetTime - DateTime.Now;
if (span.TotalSeconds > 0)
{
//it will continue till the time ends.
var temp = span.ToString();
temp=temp.Substring(0, 8);
timerlabel1.Text = temp;
}
else
//do your work here
如果您確實需要,請不要忘記驗證答案或將其標記為答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.