最近项目中很多地方使用到DevExpress的DateEdit控件,而且设置都是一致(日期格式、选择日期的日历的风格等)。每一次都需要设置太痛苦,因此需要寻找一种高效的解决方式。

一、 设置好一个作为模板,其它地方需要的话复制粘贴

这是一个好方法,不过对于我这种希望通过编程思维的方式来解决问题的话,这种不是最好的方法。

二、 对DateEdit封装一个扩展方法,扩展方法里设置好以上所提到的设置项, 每次都在代码里调用扩展方法。

这种方法貌似是编程方式,但是每次都需要调用扩展方法,显然并不是最好的。

三、 重写默认的DateEdit设置,也就是本篇的核心。

首先,添加一个DevExpress Item,在弹出的窗体中左侧选择Custom Data Edit,右侧Base Editor中下拉选择DateEdit,修改好Type Name与Item Name, 勾选ViewInfo(Painter和PopupForm可以不勾选),点击Add Item完成添加自定义DateEdit控件。

此处我的TypeName为MyDateEdit,Item Name为MyDateEdit.cs

在RepositoryItemMyDateEdit类中,添加重写方法CreateMaskProperties,实现如下:

protected override MaskProperties CreateMaskProperties()
{
MaskProperties maskProperties = base.CreateMaskProperties();
maskProperties.MaskType = MaskType.DateTime;
maskProperties.EditMask = @"yyyy-MM";
maskProperties.UseMaskAsDisplayFormat = true;
return maskProperties;
}

在MyDateEdit类中,修改原来的Propertie属性代码。

修改前:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new RepositoryItemMyDateEdit Properties
{
get
{
return base.Properties as RepositoryItemMyDateEdit;
}
}

修改后:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new RepositoryItemMyDateEdit Properties
{
get
{
RepositoryItemMyDateEdit repositoryItemDateEdit = base.Properties as RepositoryItemMyDateEdit;
if (repositoryItemDateEdit != null)
{
repositoryItemDateEdit.VistaCalendarInitialViewStyle = VistaCalendarInitialViewStyle.YearView;
repositoryItemDateEdit.VistaCalendarViewStyle = VistaCalendarViewStyle.YearView;
}
return repositoryItemDateEdit;
}
}

编译后,在工具箱就能看到MyDateEdit控件。 将控件拖拽到winform窗体中,运行程序,效果如下。

修改Devexpress DateEdit控件默认的日期格式和日历风格的更多相关文章

  1. DevExpress的DateEdit控件正确显示日期的周名称

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

  2. Devexpress DateEdit控件的值不反馈到数据源的处理方式。

    如果在GridControl中要把编辑的值反馈到数据源,可以用Gridview1.PostEdit()方法. 可是在datalayout中使用就会遇到一些问题:比如说DateEdit控件,在保存数据的 ...

  3. 取消layUI中日期选择控件默认填充日期

    input标签中使用日期选择控件填写,加载时默认填充当前日期, 标签设置了placeholder="请选择" autocomplete="off",但是并没有效 ...

  4. DevExpress DateEdit控件选择精确到秒

    先看看下面的效果图: 设置以下属性 dateEdit1.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True; date ...

  5. 日期控件 My97DatePicker WdatePicker 日期格式

    WdatePicker()只显示日期 WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})显示日期和时间 WdatePicker({dateFmt:'yyyy-MM ...

  6. jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?

    jQuery里面的datepicker日期控件默认是显示英文的,如何让他显示中文或其他呢? [官方的写法]: (1)引入JS文件: <script type="text/javascr ...

  7. 修改Delphi工具控件的默认字体

    修改Delphi工具控件的默认字体: 注册表: Delphi 6:    HKEY_CURRENT_USER\Software\Borland\Delphi\6.0Delphi 7:    HKEY_ ...

  8. 玩转控件:重绘DEVEXPRESS中DateEdit控件 —— 让DateEdit支持只选择年月 (提供源码下载)

      前言 上一篇博文<玩转控件:重绘ComboBox —— 让ComboBox多列显示>中,根据大家的回馈,ComboBox已经支持筛选了,更新见博文最后最后最后面.   奇葩 这两天遇到 ...

  9. RS开发日期提示控件默认为昨天之进阶篇

    时隔<RS开发日期提示控件默认为昨天>这篇博文已经很久了,请原谅我隔了这么久才继续来写这篇笔记.也希望读到这篇笔记的朋友可以从这篇笔记中学习到一些关于RS日期控件和JS的一些应用知识,当然 ...

随机推荐

  1. ie请求缓存问题,页面内容没有及时更新

    问题一:列表页面删除一条数据成功了,但页面上还有数据,再次点击删除,报错了... 问题二:一个点赞按钮,点击后发送一个请求,后台返回1或0 (点赞.取消点赞) ,谷歌浏览器功能正常,但在ie浏览器,后 ...

  2. mysql遇见contains nonaggregated column 'information_schema.PROFILING.SEQ'异常

    报错如下:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggrega ...

  3. leetcode — string-to-integer-atoi

    /** * Source : https://oj.leetcode.com/problems/string-to-integer-atoi/ * * Created by lverpeng on 2 ...

  4. python redis模块详解

    前言  现在越来越觉得知识的沉淀尤为重要,最近打算慢慢的把一些知识点做个记录,如果长期不用生疏了也可以快速回顾.下面我会依次介绍在python中常用组件redis,rabbitmq,mongodb,E ...

  5. Python 浅谈编程规范和软件开发目录规范的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...

  6. Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDate';

    springboot jdbc查询使用LocalDate报:Failed to convert value of type 'java.lang.String' to required type 'j ...

  7. HTML XML 介绍

    一. HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言. 二. XML即ExtentsibleMarkup Language(可扩展标记语言), XML ...

  8. Extjs4---Cannot read property 'addCls' of null 或者 el is null 关于tab关闭后再打开不显示或者报错

    做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' o ...

  9. 【手记】sql报“聚合或其他set操作消除了null值”处理

    这个警告在常规场景中没什么影响,但如果是用excel跑SQL,它会因为该警告阻止你的后续操作~事实上excel执行sql限制多多,需要更多的奇技淫巧,之前我就写过一篇.言归正传,要解决这个警告,一种当 ...

  10. 《精通CSS层叠样式表》

    书名 <精通CSS层叠样式表> 图片 时间 2017-7月 学习 感觉和ps一样对我都不友好 3天撸完