科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道DevExpress的DateEdit控件显示日期的周名

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     DevExpress 的控件相当好看而且很好用,但 DateEdit 在是显示周名时,只能显示一个“星”字。      以下是解决方法,此解决方法不需修改其源码,所以免去了重新编译的必要,可直接使用其发布的标准DLL。

作者:中国IT实验室 来源:中国IT实验室 2007年9月29日

关键字: 编程

  • 评论
  • 分享微博
  • 分享邮件
  
  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() 就可以了。
  
  

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件