我需要能夠爲我正在寫的應用程序每次禁用1.5秒按鈕。顯示圖像,用戶單擊按鈕,然後顯示另一圖像。我需要確保用戶不會再快速點擊按鈕。爲什麼這個C#計時器代碼不工作?
因此,在顯示圖像時,我調用這個函數:
//when a new image is displayed, start the timer and disable the 'done' button
//for 1.5 seconds, to force people to stop pressing next so quickly
System.Timers.Timer mTimer;
void TimerStart() {
Done.IsEnabled = false;
mTimer = new System.Timers.Timer();
mTimer.Interval = 1500;
mTimer.Start();
mTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerEnd);
}
的TimerEnd代碼如下所示:
void TimerEnd(object sender, EventArgs eArgs) {
if (sender == mTimer){
Done.IsEnabled = true;
mTimer.Stop();
}
}
的 'Done.IsEnabled' 線被擊中,但按鈕不能重新啓用,計時器不會停止發射。我在這裏做錯了什麼?如果重要,這是一個WPF應用程序。
我在TimerEnd方法中看不到任何會再次啓用按鈕的代碼 – 2009-09-23 01:13:56
除了方法的好壞之外,對於您的示例中的好方法,您應該添加事件處理程序(Elapsed + = ...) )在啓用事件觸發之前(Start())。 – 2009-09-23 01:19:01
@ Ed--那是Done.IsEnabled調用。 @傑森 - 好點,我會換掉它。 – mmr 2009-09-23 01:23:06