DevExpress 的控件相當好看而且很好用
但 DateEdit 在是顯示周名時
只能顯示一個
星
字
以下是解決方法
此解決方法不需修改其源碼
所以免去了重新編譯的必要
可直接使用其發布的標准DLL
public class MyDateEdit : DevExpress
XtraEditors
DateEdit
{
protected override DevExpress
XtraEditors
Popup
PopupBaseForm CreatePopupForm()
{
return new MyPopupDateEditForm(this);
}
}
public class MyPopupDateEditForm : DevExpress
XtraEditors
Popup
PopupDateEditForm
{
public MyPopupDateEditForm(MyDateEdit dateEdit) : base(dateEdit)
{
}
protected override DevExpress
XtraEditors
Controls
DateEditCalendar CreateCalendar()
{
return new MyDateEditCalendar(OwnerEdit
Properties
OwnerEdit
EditValue);
}
}
public class MyDateEditCalendar : DevExpress
XtraEditors
Controls
DateEditCalendar
{
public MyDateEditCalendar(
DevExpress
XtraEditors
Repository
RepositoryItemDateEdit item
object editDate) : base (item
editDate)
{
}
protected override DevExpress
XtraEditors
ViewInfo
DateEditInfoArgs CreateInfoArgs()
{
DevExpress
XtraEditors
ViewInfo
DateEditInfoArgs info = base
CreateInfoArgs ();
System
Globalization
DateTimeFormatInfo newFormat =
(System
Globalization
DateTimeFormatInfo)info
DateFormat
Clone();
// 以下是重新設置日期的周名稱
// 缺省情況下
前面帶有
星期
兩字
也正是因為如此才導致所謂的錯誤
// 注意
當前實現未處理語言環境
僅適用於中文環境
newFormat
AbbreviatedDayNames = new string[]{
日
一
二
三
四
五
六
};
info
DateFormat = newFormat;
return info;
}
}
使用時
只需 MyDateEdit dateEdit
= new MyDateEdit() 就可以了
From:http://tw.wingwit.com/Article/program/net/201311/13075.html