我有一些DateTimePicker
以永不更新的形式。
我試過Value
和Text
,Invalidate()
然後Update()
,也Refresh()
...DateTimePicker永不更新!
似乎沒有任何從當前日期更改它們的值!
無論我設置什麼,當前日期都是(相對)今天的!
這是一個.NET 3.5的錯誤還是什麼?
(不,我不能在這個項目中使用.NET 4)
如果你真的想一些代碼,然後在這裏它是:dateTimePicker1.Value = user.BirthDay;
。另外,如果我寫MessageBox.Show(user.BirthDay.ToString());
,我會得到一個很好的方框,告訴用戶的生日(我的生日,在我的機器上)。 (所以變量中有一個值...)
我是否還應該提及它們僅用於日期而不是時間?
好吧,我知道我需要寫更多:
首先,在控制更新的方法訂閱到Form.Load
事件。因此,當窗體和控件可見並且「正在運行」時,它被調用/觸發/調用。
其次,看該段代碼及其結果:
MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format)
dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995
MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date!
這不是好...輸出爲今天的日期。 (到今天,我的意思是代碼運行的那一天。)
dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ...
控制不好! 1900年不等於1753年!
dateTimePicker1.MaxDate = DateTime.Today;
// In reality, I need it to today's date
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998
時間扭曲? O_O
總之,整個代碼看起來是這樣的:
public void Form_Load(object sender, EventArgs e)
{
this.user = User.Load(path);
// this.user is a field.
// path is a static field which holds the absolute path of the file in which is serialized that data of the user.
MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format)
dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995
MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date!
dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ...
dateTimePicker1.MaxDate = DateTime.Today;
MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998
}
因此,任何解決辦法嗎? xC
您是第一個報告此錯誤的人 – 2010-11-13 19:17:44
您是否爲datetimepicker設置了「MinDate」?你確定沒有人會覆蓋你的價值嗎?因爲我認爲說在框架中沒有錯誤是相當安全的;-) – 2010-11-13 19:19:03
您是否嘗試將Value設置爲'DateTime.Parse(user.BirthDay.ToString())'? – 2010-11-13 19:19:28