2009-10-12 69 views
3

Winforms 2.0。在窗體上粘貼DateTimePicker。它默認爲TODAY。點擊下拉箭頭顯示日曆,然後點擊TODAY。即使它已經設置爲今天,ValueChanged事件也會發生火災。DateTimePicker ValueChanged事件在沒有變化時第一次觸發

我想要做的是複製這個相同的功能 - 我想重置它(在代碼中)到今天,並且下次我通過日曆點擊今天我想讓ValueChanged事件觸發(就像它做了第一次)。

如果上述不可行,我想要一些事件,只要我在日曆上選擇一個日期(無論是否有更改或無變化),總是會觸發事件。

聽起來很簡單,肯定有人有答案?

回答

6

你看到的是DateTimePicker存儲時間組件的值以及日期這一事實的副作用。

因此,當您的窗體首次初始化時,DateTimePicker正在使用DateTime.Now進行初始化。然後,當您從其下拉日曆中選擇「今日」時,您將的值更改爲DateTime.Today。

如果您不關心時間組件和/或您始終以dateTimePicker1.Value.Date讀取值,那麼您可以使用DateTime.Now初始化代碼中的控件,並且ValueChanged事件將在用戶從日曆中選擇「今天」。否則,您可能會考慮捕獲CloseUp事件,該事件在日曆控件關閉時觸發(無論值是否更改)。

+0

謝謝。你的解釋是有道理的,我在實驗過程中將它重新設置爲DateTime.Today,正如你指出的那樣,它應該是DateTime.Now。很高興知道CloseUp事件,但我沒有在我的案例中使用它,因爲我想專門針對單擊日曆日期而不是單擊表單上的任何位置。 – joedotnot 2009-10-12 03:59:05

0

我不是一個贏的窗體程序員,但看看是否有Day_Render事件。 每天都應該開火...至少有一個基於網絡的開發,但我會認爲它是一樣的。所以尋找Render()事件。

相關問題