DevExpress的DateEdit控件显示日期的周名

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

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 dateEdit1 = new MyDateEdit() 就可以了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有