DevExpress 的控件相当好看而且很好用但 DateEdit 在是显示周名时只能显示一个星字 以下是解决方法此解决方法不需修改其源码所以免去了重新编译的必要可直接使用其发布的标准DLL public class MyDateEdit : DevExpressXtraEditorsDateEdit { protected override DevExpressXtraEditorsPopupPopupBaseForm CreatePopupForm() { return new MyPopupDateEditForm(this); } } public class MyPopupDateEditForm : DevExpressXtraEditorsPopupPopupDateEditForm { public MyPopupDateEditForm(MyDateEdit dateEdit) : base(dateEdit) { } protected override DevExpressXtraEditorsControlsDateEditCalendar CreateCalendar() { return new MyDateEditCalendar(OwnerEditProperties OwnerEditEditValue); } } public class MyDateEditCalendar : DevExpressXtraEditorsControlsDateEditCalendar { public MyDateEditCalendar( DevExpressXtraEditorsRepositoryRepositoryItemDateEdit item object editDate) : base (item editDate) { } protected override DevExpressXtraEditorsViewInfoDateEditInfoArgs CreateInfoArgs() { DevExpressXtraEditorsViewInfoDateEditInfoArgs info = baseCreateInfoArgs (); SystemGlobalizationDateTimeFormatInfo newFormat = (SystemGlobalizationDateTimeFormatInfo)infoDateFormatClone(); // 以下是重新设置日期的周名称 // 缺省情况下前面带有星期两字也正是因为如此才导致所谓的错误 // 注意当前实现未处理语言环境仅适用于中文环境 newFormatAbbreviatedDayNames = new string[]{ 日 一 二 三 四 五 六}; infoDateFormat = newFormat; return info; } } 使用时只需 MyDateEdit dateEdit = new MyDateEdit() 就可以了 |