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";

字符串转DateTime

DateTime.Parse("2016-3-16 12:12:12")

字符串根据指定格式转换为DateTime

IFormatProvider ifp = new CultureInfo("zh-CN", true);
DateTime.ParseExact("", "yyyyMMddHHmmss", ifp);

ifp是一个区域特定格式字符串信息

注意:大写MM是指月,小写mm是指分钟,小时二十四制要用大写HH,十二小时制用小写hh

DateTime转换指定格式字符串

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 LZJA.Common

{

    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);

                }

            }

            else

                base.OnItemClick(hitInfo);

        }

    }

}

这是网上的一个例子,原文链接https://www.devexpress.com/Support/Center/Question/Details/CQ60337/control-for-selecting-month,下面这个是我稍微改了一下,只显示年面板的代码

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 LZJA.Common
{
public class DateEditEx : DateEdit
{ 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; } 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; //DateTime dt = new DateTime(DateTime.Year, 1, 1, 0, 0, 0);
OnDateTimeCommit(cell.Date, false);
//base.OnItemClick(hitInfo); } }
}

  

 

DevExpress之时间控件的更多相关文章

  1. DevExpress Winform 常用控件

    Ø  前言 DevExpress 控件的功能比较强大,是全球知名控件开发公司,对于开发 B/S 或 C/S 都非常出色,可以实现很炫且功能强大的效果. DevExpress Winform 常用控件是 ...

  2. 玩转控件:重绘DEVEXPRESS中DateEdit控件 —— 让DateEdit支持只选择年月 (提供源码下载)

      前言 上一篇博文<玩转控件:重绘ComboBox —— 让ComboBox多列显示>中,根据大家的回馈,ComboBox已经支持筛选了,更新见博文最后最后最后面.   奇葩 这两天遇到 ...

  3. DevExpress Winform 通用控件打印方法(允许可自定义边距) z

    DevExpress Winform 通用控件打印方法,包括gridcontrol,treelist,pivotGridControl,ChartControl,LayoutControl...(所有 ...

  4. DevExpress之GridControl控件小知识

    DevExpress之GridControl控件小知识 一.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会自动增加一个子视图 .列名也就是子表的字段 ...

  5. DevExpress主要常用控件

    DevExpress主要常用控件说明:1. TestEdit: 一个单行文本编辑器. 常用属性:Name:该控件的名称.Text:该控件中的内容.Enabled:该控件是否激活. Visible:控件 ...

  6. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

    VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...

  7. [转]一种简单的js时间控件

    使用方法: 粘贴代码到文本文档中,文档名称为datetime.js,然后在html文件中引用如下代码即可 <input name="shijian1" id="sh ...

  8. 疑似easyui本身bug:easyui时间控件问题,试了几个版本都不行

    最近发现easyui时间控件的值格式不支持带斜杠的日期(2016/10/31),必须是2016-10-31这类的才能正常使用,否则默认初始化为当前时间 <input id="Retur ...

  9. JSP页面中的精确到秒的时间控件

    技术:Struts1+jsp+MSql 需求:ncmgt网络监控系统中显示用户的操作日志,并且根据操作时间查询用户的详细操作记录.时间精确到秒 大致效果如下.上图! 大家可以清晰的看到.红色画线部分就 ...

随机推荐

  1. ListIterator add remove 使用注意

    add方法示例 //在最前面添加 List<String> list1 = new LinkedList<String>(Arrays.asList(new String[]  ...

  2. 通用对象转换Json格式

    public static string ObjectToJson<T>(IList<T> IL, params string[] args) { var Json = new ...

  3. Asp.net中用户自定义控件 ascx的使用

    使用ascx目的就是为了提高某部分功能的重复利用,我简单通过源代码说一下对它的参数的输入和数出. 我们以省市区三级连动为例子. vs2005下ascx页面的代码: <table width=&q ...

  4. Android布局文件-错误

    View requires API level 14 (current min is 8): <?xml version="1.0" encoding="utf-8 ...

  5. java 线程池用法

    public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...

  6. mongodb权威指南读书笔记

    一个服务器能不能运行多个不同端口的mongo实例? 如果两个对象不相等,hashcode一定不相等:如果两个对象相等,hashcode相等或者不相等? 修改器速度42页 update({},{&quo ...

  7. IPTV中的EPG前端优化

    先看一下IPTV相关情况: l 目前TPTV市场情况 a) 截止今年2月,全国IPTV总用户数达3630.2万,我国移动互联网用户规模接近9亿,人均月接入量近300M,8M宽带达半数,光纤近4成. 图 ...

  8. iOS中忽略NSLog打印信息(通过PCH文件中定义DEBUG宏解决)

    iOS中忽略NSLog打印信息 解决办法: 1.新建PrefixHeader_pch文件,在该文件中定义一下宏 //通过DEBUG宏的定义来解决Debug状态下和Release状态下的输出 #ifde ...

  9. Swift - 41 - swift1.2新特性(1)

    更简洁的if-let import UIKit func attack(name: String, enemyName: String, weapon: String) { print("\ ...

  10. 在MyEclipse中设置Source folders和output folder

    在一个项目中可能会有多个资源文件,它们共同编译输出到输出文件.那么除了默认的src以外,如何把其他文件设置成资源文件(Source folders)呢?