最近项目中很多地方使用到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. springboot配置监听器、过滤器和拦截器

    监听器:listener是servlet规范中定义的一种特殊类.用于监听servletContext.HttpSession和servletRequest等域对象的创建和销毁事件.监听域对象的属性发生 ...

  2. Android快速实现二维码扫描--Zxing

    Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...

  3. 《Kubernetes权威指南》——Kubelet运行机制与安全机制

    1 Kubelet运行机制 Kubenetes集群中的每个Node节点都会启动一个Kubelet服务进程用于处理Master下发到该节点的任务,管理Pod及其中的容器 Kubelet进程在API Se ...

  4. Java工程师学习指南 完结篇

    Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校 ...

  5. gbk转utf-8

    1.文件转码:使用脚本   gbk转u8的脚本文件: #!/bin/bash FILE_SUFFIX="java xml html vm js" # FILE_SUFFIX=&qu ...

  6. 进程间通信IPC-信号

    1,signal-ANSI C信号处理 #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal ...

  7. Go 标准库 —— sync.Mutex 互斥锁

    Mutex 是一个互斥锁,可以创建为其他结构体的字段:零值为解锁状态.Mutex 类型的锁和线程无关,可以由不同的线程加锁和解锁. 方法 func (*Mutex) Lock func (m *Mut ...

  8. kali网卡配置文件

    kali的网卡配置文件为/etc/network/interfaces 下面定义了lo.eth0和eth1的配置 auto lo # auto表示开机启动该网卡设备 iface lo inet loo ...

  9. 学会4种备份MySQL数据库(基本备份方面没问题了)

    前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么 ...

  10. C语言之链表的使用

    C语言链表初学者都说很难,今天就来为大家讲讲链表 讲链表之前不得不介绍一下结构体,在链表学习之前大家都应该已经学了结构体,都知道结构体里面能有许多变量,每个变量可以当做这个结构体的属性,例如: str ...