2012-04-12 77 views
2

我有一個ValueChanged事件,我正在檢查日期並向用戶顯示消息,並將DateTimePicker的值設置爲另一個值。這是事件:Windows XP中的ValueChanged事件

private void dtpStartDate_ValueChanged(object sender, EventArgs e) 
{ 
    if (frmDate.Value < this.minDate) 
    { 
     MessageBox.Show("Date not found"); 
     frmDate.Value = previousValue; 
     return; 
    } 
} 

這在Windows 7中正常工作,但它在Windows XP中顯示消息框兩次。我該如何解決它?

+0

你的Win 7上安裝了.NET 2.0嗎?還是在.NET 4下運行你的應用程序? – 2012-04-12 12:14:15

+0

在Windows7上我使用.Net框架3.5相同的插件安裝在XP上。我正在使用Visual Studio 2010進行開發。 – Awadhendra 2012-04-12 13:01:31

回答

0

如果你不想花太多精力:)

private DateTime _lastDate; 
private void dtpStartDate_ValueChanged(object sender, EventArgs e) 
{ 
    if (_lastDate != frmDate.Value) { 
     _lastDate = frmDate.Value; 
     if (_lastDate < this.minDate) 
     { 
      MessageBox.Show("Date not found"); 
      frmDate.Value = previousValue; 
      return; 
     } 
    } 
} 
+0

此代碼無法使用。問題仍然是一樣的, – Awadhendra 2012-04-12 13:08:23

0

你要對這個錯誤的方式就髒了。 DateTimePicker類具有MaxDate和MinDate屬性來處理該問題。只需在設計器或運行時設置表單載入時或有意義的時間,那麼您根本不必擔心事件,沒有人能夠選擇無效的日期。

相關問題