如何让DevExpress的DateEdit控件正确显示日期的周名

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() 就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值