2016-09-20 39 views
-4

我如何測量點擊之間的時間,如果按鈕點擊之間的時間可以說> = 1000毫秒(1秒)的事情發生,例如。 Msgbox彈出。如何衡量按鈕點擊之間的時間? C#

private void button1_Click(object sender, EventArgs e) 
{ 
    Stopwatch sw = new Stopwatch(); 
    double duration = sw.ElapsedMilliseconds; 
    double tt = 2000; 

    sw.Start(); 

    if (duration >= tt) 
    { 
     textBox1.Text = "Speed reached!"; 
    } 
    else 
    { 
     sw.Stop(); 
     duration = 0; 
    } 
} 
+1

嘗試一下,如果遇到特定問題,請回來。基本上,第一次點擊存儲當前時間,然後第二次點擊獲取當前時間,並與以前的時間進行比較...或者只是谷歌它,你會得到大量的代碼樣本我期望,像[這一個](http: //stackoverflow.com/questions/13048857/how-to-track-time-between-two-button-clicks-in-c-sharp-in-a-windows-form-applica) – musefan

+0

https://www.dotnetperls .com/stopwatch –

+0

好的謝謝,我已經做了一些研究,但我發現只用於java – Mayketi

回答

1

你可以這樣說:

  • 首先點擊開始的1000毫秒
  • 在第二次點擊的時間間隔內計時器停止計時,或重置回零

如果計時器沒有中斷地完成,其事件處理程序將顯示消息框。

+0

評論?....... – dasblinkenlight

+0

爲什麼投了票? –

+0

我不認爲你的答案對想要解決問題的人有用。如果我是一位想要解決與OP相同問題的訪問者,我不會找到有用的答案。這只是對概念的簡要描述(對於一種選擇),並非問題的真正解決方案 – musefan

0

正如你已經專門嘗試使用Stopwatch類的代碼,那麼我將提供一個解決方案。

您嘗試的問題是您需要將Stopwatch實例聲明爲全局變量,因此您可以在不同的點擊事件上訪問相同的實例。

Stopwatch sw = new Stopwatch(); 

private void button1_Click(object sender, EventArgs e) 
{ 
    // First we need to know if it's the first click or the second. 
    // We can do this by checking if the timer is running (i.e. starts on first click, stops on second. 
    if(sw.IsRunning) // Is running, second click. 
    { 
     // Stop the timer and compare the elapsed time. 
     sw.Stop(); 
     if(sw.ElapsedMilliseconds > 1000) 
     { 
      textBox1.Text = "Speed reached!"; 
     } 
    } 
    else // Not running, first click. 
    { 
     // Start the timer from 0. 
     sw.Restart(); 
    } 
} 
相關問題