要避免重復觸發KeyPress事件,可以在事件處理程序中使用一個變量來記錄上一次觸發事件的時間,并在每次事件觸發時檢查時間間隔是否足夠長。如果時間間隔不夠長,則可以忽略當前事件,從而避免重復觸發。
以下是一個示例代碼:
private DateTime lastKeyPressTime = DateTime.MinValue;
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
// 檢查時間間隔是否足夠長
if ((DateTime.Now - lastKeyPressTime).TotalMilliseconds < 500)
{
// 忽略當前事件
e.Handled = true;
return;
}
// 處理KeyPress事件
// ...
// 更新上一次觸發事件的時間
lastKeyPressTime = DateTime.Now;
}
在上面的示例中,我們使用一個變量lastKeyPressTime來記錄上一次KeyPress事件的時間。每次事件觸發時,我們檢查當前時間與上一次事件時間的時間間隔是否超過500毫秒,如果不足夠長,則忽略當前事件并將e.Handled屬性設置為true,從而避免重復觸發事件。