我一直在為自己制作一個小專案,試圖測量兩次點擊之間的時間。稍后我會將其更改為按鍵,但我可以自己完成。我需要以毫秒為單位測量時間,我知道的唯一方法是使用計時器......
bool clicked = true;
int time = 0;
private void button1_Click(object sender, EventArgs e)
{
if (clicked)
{
timer1.Start();
clicked = false;
}
else
{
timer1.Stop();
clicked = true;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
time = 10;
label1.Text = Convert.ToString(time);
}
計時器設定為 10 滴答的間隔,只是為了直觀地看到我還讓計時器顯示時間。但是當我測驗它時,我添加了另一個間隔為 1000 滴答的計時器,由此我看到了差異。后來我意識到計時器不準確。我開始挖掘,唯一被推薦??的是秒表,我嘗試了這個......
private void button1_Click(object sender, EventArgs e)
{
var timer = new Stopwatch();
if (clicked)
{
timer.Start();
clicked = false;
}
else
{
timer.Stop();
TimeSpan timeTaken = timer.Elapsed;
label1.Text = timeTaken.ToString();
clicked = true;
}
}
但是每次都會回傳“00:00:00”的結果。我該怎么辦?
uj5u.com熱心網友回復:
我認為您不需要計時器,您只需要計算第一次點擊(將發生的日期和時間存盤在dtPreviousClick變數中)和第二次點擊之間經過的時間。2 個DateTime物件之間的區別是一個Timespan物件具有一個名為TotalMilliseconds您要查找的值的屬性。
參考:https : //docs.microsoft.com/en-us/dotnet/api/system.timespan.totalmilliseconds
bool clicked = false;
DateTime dtPreviousClick;
private void button1_Click(object sender, EventArgs e)
{
if (!clicked)
{
dtPreviousClick = DateTime.UtcNow;
clicked = true;
label1.Text = "awaiting another click....";
}
else
{
label1.Text = (DateTime.UtcNow - dtPreviousClick).TotalMilliseconds.ToString();
clicked = false;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/337291.html
