我遇到了DateTimePicker的問題,它很容易重現,感覺就像是控件本身的錯誤,但我想確保我不會誤解任何東西。使用DateTimePicker創建一個WinForms應用程序(我們的項目在.net 4.0中,但我嘗試在.net 4.5中創建它,同樣的問題)。選擇器本身具有格式爲「HH:mm」的自定義格式,並且ShowUpDown也設置爲true。 它有一個驗證方法如下:DateTimePicker WinForm:在驗證更新值時錯誤地設置了值
private void dateTimePicker1_Validating(object sender, CancelEventArgs e)
{
dateTimePicker1.Value = DateTime.Now;
}
設置一個斷點在該行上。
請確保在應用程序中有另一個控件,以便您可以標籤出DateTimePicker來觸發驗證。
現在,在程序中導航到DateTimePicker的路徑並在例如小時字段中輸入「202」。這將看起來像你先寫了20,而當你寫第二個「2」時,它現在只是現場的2。
現在標籤出DateTimePicker。這將觸發驗證斷點。請注意DateTimePicker的值現在是如何設置爲20小時的日期。讓該行執行並再次觀看DateTimePicker的值。現在,數值爲02小時,而不是(數字)(而不是(!!)DateTime.Now的值)
因此,在將值設置爲DateTime.Now之後,它將值更改爲之前未完成的值輸入到DateTimePicker 。
這是怎麼回事,有沒有什麼辦法可以解決這個問題?
進出口使用'窗戶8',當它驗證值爲'02'理所應當的,當它它設置成'DateTime.Now'然後將其設置爲當前時間。我不能重新創建這個。 – 2013-04-08 13:11:16
好吧,那麼它必須在Win8中修復,我目前在Windows 7上,並且它很容易重現。 – Joel 2013-04-08 14:37:15