zoukankan      html  css  js  c++  java
  • 修改Devexpress DateEdit控件默认的日期格式和日历风格

    最近项目中很多地方使用到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窗体中,运行程序,效果如下。

  • 相关阅读:
    C#模拟POST表单提交 WebClient
    视频广告屏蔽器(附下载地址)
    SQL Server 不同数据库导入指定数据解决方案
    WinRAR(WinZip)压缩与解压实现(C#版Window平台)
    Visual Studio 扩展包(.vsix)制作
    ORM for Net主流框架汇总与效率测试
    文件删除小助手
    C# 控制台应用程序输出颜色字体[更正版]
    IE与IE内核浏览器的那点事
    where in的sql语句按照指定ID进行排序的解决方法
  • 原文地址:https://www.cnblogs.com/godbell/p/9490600.html
Copyright © 2011-2022 走看看