簡體   English   中英

如何通過單擊按鈕啟動倒數計時器事件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM