C#中將dateTimePicker初始值設置爲空

最近在作一個小項目,有一個功能是根據用戶選擇條件查詢數據,要求時間控件的默認值爲空,只有當用戶修改了時間,才根據時間查詢。簡單的說,就是默認或者點擊清空按鈕的狀況下,時間控件dateTimePicker的值爲空,當觸發事件ValueChanged時再顯示相對應的時間。c#

開始,我覺得修改控件的默認值爲空就能夠了,可是我失敗了,dateTimePicker不容許空值。嘗試了不少次以後我開始在網上找資料,尋到了以下方法:this

窗體初始化或者放一個清空按鈕,點擊清空按鈕時執行以下代碼:spa

C#代碼 :
this. dateTimePicker1.Format = DateTimePickerFormat.Custom;
this. dateTimePicker2.CustomFormat = "";

而後在DateTimePicker控件的事件 dtp_firsttime_ValueChanged中執行以下代碼:code

 

C#代碼:
 this. dateTimePicker1.Format = DateTimePickerFormat.Long;
 this. dateTimePicker1.CustomFormat = null;

 這樣作確實能讓控件dateTimePicker1的初始值爲空,可是存在一個bug,那就是第一次選擇時間時,若是選擇的剛好是默認的時間,那麼將沒法觸發事件dtp_firsttime_ValueChanged ,即dateTimePicker1的值依然爲空。這個問題很棘手,查閱不少資料無果以後繼續細細研究dateTimePicker,發現了這樣一個屬性:Checked——當ShowSelectBoxtrue時,肯定是否選中複選框,以指示用戶已經選擇了某個值。因而,我在窗體初始化或點擊清空按鈕的代碼中更改了屬性Checked的值,即添加以下代碼:orm

C#代碼:
this.dtp_firsttime.Checked = false;

這樣bug便解決了。blog

 

出處:http://1454396751.iteye.com/blog/2276801事件

相關文章
相關標籤/搜索