欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

修改Devexpress DateEdit控件默认的日期格式和日历风格

程序员文章站 2023-04-08 08:30:20
最近项目中很多地方使用到DevExpress的DateEdit控件,而且设置都是一致(日期格式、选择日期的日历的风格等)。每一次都需要设置太痛苦,因此需要寻找一种高效的解决方式。 一、 设置好一个作为模板,其它地方需要的话复制粘贴 这是一个好方法,不过对于我这种希望通过编程思维的方式来解决问题的话, ......

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

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

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

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

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

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

首先,添加一个devexpress item,在弹出的窗体中左侧选择custom data edit,右侧base editor中下拉选择dateedit,修改好type name与item name, 勾选viewinfo(painter和popupform可以不勾选),点击add item完成添加自定义dateedit控件。

修改Devexpress DateEdit控件默认的日期格式和日历风格

修改Devexpress 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控件默认的日期格式和日历风格

修改Devexpress DateEdit控件默认的日期格式和日历风格

修改Devexpress DateEdit控件默认的日期格式和日历风格