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. 利用PCA来简化数据

    13.2.2 在NUmpy中实现PCA 将数据转换成前N个主成分的伪代码大致如下: 去除平均值 计算协方差矩阵 计算协方差矩阵的特征值和特征向量 将特征值从大到小排列 保留最上面的N个特征向量 将数据 ...

  2. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  3. z-index优先级总结

    因为显示器显示的图案是一个二维平面,拥有x轴和y轴来表示位置属性.为了表示三维立体的概念如显示元素的上下层的叠加顺序引入了z-index属性来表示z轴的区别,表示一个元素在叠加顺序上的上下立体关系. ...

  4. AD域属性对照表

    查看文章 AD属性对照表(一)[AD域][属性] 2011年08月25日 星期四 19:36AD属性对照表家庭电话 :“常规”标签  姓 Sn                       Y 名 gi ...

  5. asp.net读取Access数据库。

    注:数据库(表名 job  id 工作id ,job工作字段) 数据库放在app_data文件中.名称为database.mdb 如果用codesmith生成,选择的数据库连接类型如下图: 项目结构图 ...

  6. CSS3 用户界面

    CSS3用户界面 在CSS3中,新的用户界面特性包括重设元素尺寸,盒尺寸以及轮廓等. 用户界面属性: resize box-sizing outline-offset 浏览器支持 属性 浏览器支持 r ...

  7. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  8. Android 如何调用自写APK和非自写APK

    由于项目需要,调用一个现成的APK,总结之余,顺便把怎么调用自写APK的方法也写上,以做比较 1.如何调用现成的APK: 先上调用代码,然后再一一解释: Intent mIntent = new In ...

  9. MySQL 行子查询

    MySQL 行子查询 行子查询是指子查询返回的结果集是一行 N 列,该子查询的结果通常是对表的某行数据进行查询而返回的结果集. 一个行子查询的例子如下: SELECT * FROM table1 WH ...

  10. Ajax--JavaScript实现

    Ajax:一种不用刷新整个页面便可与服务器通讯的办法 Ajax实现的步骤: 1.创建XMLHttpRequest对象 2.服务器向浏览器响应请求(注册监听) 3.浏览器与服务器建立连接 4.浏览器向服 ...