修改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窗體中,運行程序,效果如下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM