[英]How to start a countdown timer event from the click of a button?
所以我編寫了一個計時器,您可以在其中通過單獨的按鈕單擊事件來增加小時、分鍾和秒。 我的目標是設置小時、分鍾和秒,當我單擊開始按鈕時,代碼將開始倒計時。 目前,我似乎只能在時間增加后立即倒計時。 我嘗試過的任何東西都不適用於開始按鈕單擊事件,有什么想法嗎?
public partial class Form1 : Form
{
System.Windows.Forms.Timer timer;
TimeSpan countdownClock = TimeSpan.Zero;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
AddTimeToClock(TimeSpan.FromSeconds(10));
}
private void Form1_Load(object sender, EventArgs e)
{
timer = new System.Windows.Forms.Timer();
timer.Interval = (int)TimeSpan.FromSeconds(1).TotalMilliseconds;
timer.Tick += OnTimeEvent;
DisplayTime();
}
private void DisplayTime()
{
lblTime.Text = countdownClock.ToString(@"hh\:mm\:ss");
}
private void OnTimeEvent(object sender, EventArgs e)
{
// Subtract whatever our interval is from the countdownClock
countdownClock = countdownClock.Subtract(TimeSpan.FromMilliseconds(timer.Interval));
if (countdownClock.TotalMilliseconds <= 0)
{
// Countdown clock has run out, so set it to zero
// (in case it's negative), and stop our timer
countdownClock = TimeSpan.Zero;
timer.Stop();
}
// Display the current time
DisplayTime();
}
private void AddTimeToClock(TimeSpan timeToAdd)
{
// Add time to our clock
countdownClock += timeToAdd;
// Display the new time
DisplayTime();
// Start the timer if it's stopped
if (!timer.Enabled) timer.Start();
}
private void button2_Click(object sender, EventArgs e)
{
AddTimeToClock(TimeSpan.FromMinutes(1));
}
private void button3_Click(object sender, EventArgs e)
{
AddTimeToClock(TimeSpan.FromMinutes(10));
}
private void Start_Click(object sender, EventArgs e)
{
}
}
我還嘗試使用此命令添加計時器間隔刻度
私有 static 只讀 int timeScale = 6
調整 OnTimeEvent 中的 countdownClock,並乘以比例。
countdownClock = countdownClock.Subtract(timeScale * TimeSpan.FromMilliseconds(timer.Interval));
是你的
// Start the timer if it's stopped
if (!timer.Enabled) timer.Start();
你總是在時間增量上啟動你的時鍾。 在 btn click 上開始你的時鍾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.