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

 我来答
二二二MCoc
推荐于2016-10-12 · 超过67用户采纳过TA的回答
知道答主
回答量:112
采纳率:100%
帮助的人:121万
展开全部
以下是解决方法,此解决方法不需修改其源码,所以免去了重新编译的必要,可直接使用其发布的标准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[]{"日", "一", "二", "三", "四", "五",
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微笑感媣街頭
2016-01-08 · TA获得超过8923个赞
知道大有可为答主
回答量:7511
采纳率:94%
帮助的人:822万
展开全部
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() 就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式