DevExpress之时间控件dateEdit和timeEdit基本属性DisplayFormat.FormatString-------失去焦点是控件显⽰的格式,timeEdit⽤不上EditMask--------------------------获取焦点时也就是在编辑状态时控件的显⽰格式ShowToday-----------------------控件编辑状态时是否在编辑框中显⽰当天⽇期,dateEdit的控件Text------------------------------获取控件的值SelectedText---------------------获取选中的值,⼀般是⽤在timeEdit,timeEdit编辑状态时可以选中⼩时/分钟/秒显⽰到天dateEdit1.Properties.DisplayFormat.FormatString = "yyyy-MM-dd";dateEdit1.Properties.EditMask = "yyyy-MM-dd";显⽰到⽉dateEdit1.Properties.DisplayFormat.FormatString = "yyyy-MM";dateEdit1.Properties.EditMask = "yyyy-MM";显⽰到年dateEdit1.Properties.DisplayFormat.FormatString = "yyyy";dateEdit1.Properties.EditMask = "yyyy";字符串转DateTimeDateTime.Parse("2016-3-16 12:12:12")字符串根据指定格式转换为DateTimeIFormatProvider ifp = new CultureInfo("zh-CN", true);DateTime.ParseExact("20160316121212", "yyyyMMddHHmmss", ifp);ifp是⼀个区域特定格式字符串信息注意:⼤写MM是指⽉,⼩写mm是指分钟,⼩时⼆⼗四制要⽤⼤写HH,⼗⼆⼩时制⽤⼩写hhDateTime转换指定格式字符串DateTime datetime = DateTime.Now;string timeString = datetime.ToString("yyyyMMddHHmmss");旧版本在显⽰到⽉或者是年的时候有点⿇烦,需要⾃⼰重载dateEdit控件using System;using System.Collections;using System.Collections.Generic;using System.Data;using System.Diagnostics;using DevExpress.XtraEditors;using DevExpress.XtraEditors.Calendar;using DevExpress.XtraEditors.Popup;using DevExpress.XtraEditors.Controls;using DevExpress.XtraEditors.Repository;namespace mon{public class DateEditEx : DateEdit{public DateEditEx(){Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;Properties.DisplayFormat.FormatString = "yyyy-MM";Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;Properties.Mask.EditMask = "yyyy-MM";Properties.ShowToday = false;}protected override PopupBaseForm CreatePopupForm(){if (Properties.VistaDisplayMode == DevExpress.Utils.DefaultBoolean.True)return new CustomVistaPopupDateEditForm(this);return new PopupDateEditForm(this);}private DateResultModeEnum _dateMode = DateResultModeEnum.FirstDayOfMonth;public DateResultModeEnum DateMode{get { return _dateMode; }set { _dateMode = value; }}public enum DateResultModeEnum : int{//虽然是年⽉控件,但⽇期Datetime肯定是2012-01-01这种格式//所以,这个枚举定义了年⽉控件返回本⽉的第⼀天,还是本⽉的最后⼀天作为DateEditEx的值 FirstDayOfMonth = 1,LastDayOfMonth = 2}}public class CustomVistaPopupDateEditForm : VistaPopupDateEditForm{public CustomVistaPopupDateEditForm(DateEdit ownerEdit) : base(ownerEdit) { }protected override DateEditCalendar CreateCalendar(){return new CustomVistaDateEditCalendar(OwnerEdit.Properties, OwnerEdit.EditValue);}public class CustomVistaDateEditCalendar : VistaDateEditCalendar{public CustomVistaDateEditCalendar(RepositoryItemDateEdit item, object editDate) : base(item, editDate) { }protected override void Init(){base.Init();this.View = DateEditCalendarViewType.YearInfo;}public DateEditEx.DateResultModeEnum DateMode{get { return ((DateEditEx)this.Properties.OwnerEdit).DateMode; }}protected override void OnItemClick(DevExpress.XtraEditors.Calendar.CalendarHitInfo hitInfo){DayNumberCellInfo cell = hitInfo.HitObject as DayNumberCellInfo;if (View == DateEditCalendarViewType.YearInfo){DateTime dt = new DateTime(DateTime.Year, cell.Date.Month, 1, 0, 0, 0);if (DateMode == DateEditEx.DateResultModeEnum.FirstDayOfMonth){OnDateTimeCommit(dt, false);}else{DateTime tempDate = dt.AddMonths(1).AddDays(-1);tempDate = new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, 23, 59, 59);OnDateTimeCommit(tempDate, false);}}elsebase.OnItemClick(hitInfo);}}}using System;using System.Collections.Generic;using System.Linq;using System.Text;using DevExpress.XtraEditors;using DevExpress.XtraEditors.Calendar;using DevExpress.XtraEditors.Popup;using DevExpress.XtraEditors.Controls;using DevExpress.XtraEditors.Repository;namespace mon{public DateEditEx(){Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;Properties.DisplayFormat.FormatString = "yyyy";Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;Properties.Mask.EditMask = "yyyy";Properties.ShowToday = false;}protected override PopupBaseForm CreatePopupForm(){if (Properties.VistaDisplayMode == DevExpress.Utils.DefaultBoolean.True)return new CustomVistaPopupDateEditForm(this);return new PopupDateEditForm(this);}private DateResultModeEnum _dateMode = DateResultModeEnum.FirstDayOfMonth;public DateResultModeEnum DateMode{get { return _dateMode; }set { _dateMode = value; }}public enum DateResultModeEnum : int{//虽然是年⽉控件,但⽇期Datetime肯定是2012-01-01这种格式//所以,这个枚举定义了年⽉控件返回本⽉的第⼀天,还是本⽉的最后⼀天作为DateEditEx的值FirstDayOfMonth = 1,LastDayOfMonth = 2}}public class CustomVistaPopupDateEditForm : VistaPopupDateEditForm{public CustomVistaPopupDateEditForm(DateEdit ownerEdit) : base(ownerEdit) { }protected override DateEditCalendar CreateCalendar(){return new CustomVistaDateEditCalendar(OwnerEdit.Properties, OwnerEdit.EditValue);}}public class CustomVistaDateEditCalendar : VistaDateEditCalendar{public CustomVistaDateEditCalendar(RepositoryItemDateEdit item, object editDate) : base(item, editDate) { } protected override void Init(){base.Init();this.View = DateEditCalendarViewType.YearsInfo;}get{return ((DateEditEx)this.Properties.OwnerEdit).DateMode;}}protected override void OnItemClick(DevExpress.XtraEditors.Calendar.CalendarHitInfo hitInfo) {DayNumberCellInfo cell = hitInfo.HitObject as DayNumberCellInfo;//DateTime dt = new DateTime(DateTime.Year, 1, 1, 0, 0, 0);OnDateTimeCommit(cell.Date, false);//base.OnItemClick(hitInfo);}}}。