DateTimePicker in TabControl(TabPage)

今天發現一個奇怪的問題(也許.net老手們早已知道):將DateTimePicker控件放在TabPage控件之中,如果當前的TabPage不是可見的(不是被選中的),此時如果想通過.Text屬性來賦值的話,Value是被正確的賦值了,但通過.Text是取不到值的。實在奇怪。

從一個臺灣BLOG中找到了相關的信息:經過與微軟工程師的溝通,說這是OS本身的問題,因爲該控件是使用的系統本身的機能,應該是由於的賦值時,該控件的句柄沒有生成。

只要在賦值前,使用加入如下代碼:

IntPtr p = dateTimePicker1.Handle;

取得一個其句柄,再賦值就正常了。具體原因偶也沒有搞明白。