發現問題
datetimepicker控件是用來顯示和修改日期時間的,但默認只顯示日期和修改日期。最近在使用中就遇到了一個問題,下面來隨著小編一起看看吧
前幾天公司用的物料管理系統出現了一個很奇怪的問題
具體的現象是:
10月31號的那天,物流部的人因為之前的問題,需要將之前已經結轉的9月份取消結轉。
,當操作人員將10改變為9的時候,出現問題了。程序直接崩潰,并且報了“年、月和日參數描述無法表示的 datetime”
這個錯誤。經過一系列的調試 與查資料文檔,發現是c#datetimepicker這個控件本身的問題,具體原因是datetimepicker
這個控件會在繪制的時候,默認將當前年月日作為本身value,然后,如果他的屬性中的style設置為只顯示年月的時候,如果貿然改變月份,他會有一個校驗機制。
校驗修改后的月份是否存在這一天。解決方法是:在窗體加載時候給空間賦予一個默認的value,考慮到業務邏輯的影響,定位當月一號為默認日期。
解決方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
"新增窗體加載事件 /// <summary> /// 新增窗體加載事件,給窗體中兩個datepicker控件的value賦值 /// 賦的值為當月一號 /// </summary> /// <param name=""sender""></param> /// <param name=""e""></param> private void frmmonthcarry_load( object sender, eventargs e) { this .datepickermonth.value = datetime.now.adddays(1 - datetime.now.day); this .datecancel.value = this .datepickermonth.value; }" |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.cnblogs.com/wangyinhang/p/9907181.html