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. python对象(腌制)

    python的内置对象类型主要有数字,字符串,列表,元祖,字典,集合等等,在python中,一切皆为对象 #腌制在python中如果我们有一些对象需要持久性存储,并且不丢失我们这个对象的类型与数据,我 ...

  2. cookie有效期到了后,是由浏览器还是由系统还删除的

    Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie).而还有一些Cookie在用户退出 ...

  3. Android ScrollView 嵌套 ListView、 ListView 嵌套ScrollView Scroll事件冲突解决办法

    本人菜鸟一名,最近工作了,开始学习Android. 最近在做项目的时候,UX给了个design,大概就是下拉刷新的ListView中嵌套了ScrollView,而且还要在ScrollView中添加动画 ...

  4. 对于没有Command属性时,怎么来达到相同的效果

    控件是第三方Telerik控件  CellEditEnded事件想写成Command{Binding CellEditEndedCommand}  这样的效果如下代码 需要引用 System.Wind ...

  5. 给C++初学者的50个忠告(好文转载)

    给C++初学者的50个忠告       1.把C++当成一门新的语言学习(和C没啥关系!真的.):  2.看<Thinking In C++>,不要看<C++变成死相>: 3. ...

  6. Win7下Solr4.10.1和IK Analyzer中文分词

    1.下载IK中文分词压缩包IK Analyzer 2012FF_hf1,并解压到D:\IK Analyzer 2012FF_hf1: 2.将D:\IK Analyzer 2012FF_hf1\IKAn ...

  7. jQuery的map()与jQuery.map()总结

    请注意他们不是同一个函数.前者是jQuery对象的实例方法(即$.fn.map),后者是一个仅仅挂在jQuery对象下的静态方法(即$.map). 他们用法的异同:map()的返回值是包裹了一个Arr ...

  8. PHPCMS V9 简单的二次开发

    更多二次开发技巧,查看phpcms系统帮助 ,前台模板解析后的缓存 caches\caches_template\default 前台控制类index.php,前台标签类*_tag.class.php ...

  9. JS中typeof与instanceof的区别 (2010-05-26 10:47:40

    JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...

  10. Delphi XE7 开发ActiveX 及在IntraWeb下调试

    最近学习DelphiXE7下Intraweb开发,Intraweb完全服务器端运行使得FastReport报表系统无法在客户端运行,当然网上也有一大堆解决方案,例如导出到PDF后,给出连接,让客户点击 ...