2016-09-20 6 views
-4

Wie kann ich die Zeit zwischen Klicks messen, wenn die Zeit zwischen Tastenklicks sagen wir> = 1000 ms (1 sec) ist, passiert etwas, z. Msgbox wird angezeigt.Wie messen Sie die Zeit zwischen den Tastenklicks? 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

Versuchen Sie etwas, und kommen Sie zurück, wenn Sie mit einem bestimmten Problem stecken bleiben. Grundsätzlich, beim ersten Klick speichern Sie die aktuelle Zeit, dann beim zweiten Klick erhalten Sie die aktuelle Zeit und vergleichen Sie mit der vorherigen Zeit ... oder einfach googeln Sie, erhalten Sie viele Codebeispiele, die ich erwarte, wie [dieser] (http: //stackoverflow.com/questions/13048857/how-to-track-time-between-to-button-clicks-in-c-sharp-in-a-windows-form-applica) – musefan

+0

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

+0

Ok danke, ich habe einige Nachforschungen gemacht, aber ich fand nur für Java – Mayketi

Antwort

1

Sie können es wie folgt tun:

  • Auf dem ersten Klick den Timer mit Zeitintervall von 1000 ms
  • Auf dem zweiten Klick den Timer stoppen starten, oder auf Null zurückgesetzt zurück

Wenn der Timer ohne Unterbrechung beendet wird, zeigt sein Event-Handler das Meldungsfeld an.

+0

Kommentar? ....... – dasblinkenlight

+0

Warum eine Down-Abstimmung? –

+0

Ich denke nicht, dass Ihre Antwort nützlich für Leute ist, die das Problem lösen wollen. Wenn ich als Besucher das gleiche Problem wie das OP lösen wollte, würde ich Ihre Antwort nicht hilfreich finden. Es ist nur eine kurze Beschreibung des Konzepts (für eine Option), keine echte Lösung für das Problem – musefan

0

Da Sie speziell versucht haben, mit der Stopwatch Klasse zu codieren, dann werde ich eine Lösung mit dieser bieten.

Das Problem mit Ihrem Versuch ist, dass Sie Ihre Stopwatch Instanz als eine globale Variable deklarieren müssen, so dass Sie auf die gleiche Instanz auf verschiedene Click-Ereignisse zugreifen können.

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(); 
    } 
} 
Verwandte Themen