2014-07-27 69 views
1

我有兩個DateTimePickers dtpDateFromdtpDateTo如何「取消事件」?

我已經編寫了一個條件語句,如果dtpDateTo是通過他們的ValueChanged 事件早於dtpDateFrom,我會得到一個錯誤信息,但它仍然適用的變化。

實施例:

  1. dtpDateFrom = 7月2日
  2. dtpDateTo = 7月3日
  3. 如果更改dtpDateFrom至7月4日〜>錯誤消息+ 而不執行7月4日變化

回答

0

嘗試爲控件使用驗證事件。在您的代碼在您的驗證放在e.cancel失敗=真正

Private Sub dtpDateFrom_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles dtpDateFrom.Validating 
If dtpDateFrom.Value > dtpDateTo.Value Then 
     Messagebox.show("From date must be less than To date") 
     e.Cancel = True 'Validation failed. 
    End If 
End Sub 
+0

哇,謝謝你。我不知道如何在驗證事件中錯過像e.Cancel這樣簡單的事情。 – user3386068

+0

它發生了大聲笑。現在你知道了,歡迎你。 – Supersnake

1

確定它仍然適用。 「VAlueChanged」是什麼意思?這意味着它已經改變。該事件是每個文檔hrown POST FACTUM,所以一個例外不會神奇地回滾時間。

關鍵是要編程,以便在更改值之前進行驗證和值拒絕。

+0

好了,所以我怎樣檢測它是否符合條件,則無法執行這個簡單問題的變化? – user3386068