using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace BWP.WinFormControl
|
|
{
|
|
public class UDatePicker : Label
|
|
{
|
|
public DateTime? Date
|
|
{
|
|
set
|
|
{
|
|
if (value == null)
|
|
{
|
|
this.Text = string.Empty;
|
|
return;
|
|
}
|
|
var format = "yyyy/MM/dd";
|
|
if (_type == DateTimeType.DateTime)
|
|
format = "yyyy/MM/dd HH:mm:ss";
|
|
this.Text = value.Value.ToString(format);
|
|
}
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(this.Text))
|
|
return null;
|
|
return DateTime.Parse(this.Text);
|
|
}
|
|
}
|
|
|
|
private DateTimeType _type = DateTimeType.Date;
|
|
public DateTimeType Type
|
|
{
|
|
get { return _type; }
|
|
set { _type = value; }
|
|
}
|
|
|
|
public UDatePicker()
|
|
{
|
|
this.BorderStyle = BorderStyle.FixedSingle;
|
|
this.BackColor = Color.White;
|
|
this.Font = new Font("宋体", 15);
|
|
this.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.Text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
|
|
this.AutoSize = false;
|
|
this.ResumeLayout(false);
|
|
}
|
|
|
|
//protected override void InitLayout()
|
|
//{
|
|
// base.InitLayout();
|
|
// Date = DateTime.Now;
|
|
//}
|
|
|
|
public event EventHandler AfterDateChange;
|
|
|
|
protected override void OnClick(EventArgs e)
|
|
{
|
|
if (!this.Enabled)
|
|
return;
|
|
var cs = new CalendarSelecter();
|
|
if (cs.ShowDialog() == true)
|
|
{
|
|
Date = cs.Result + new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
|
|
if (AfterDateChange != null)
|
|
{
|
|
AfterDateChange(this,e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public enum DateTimeType
|
|
{
|
|
Date,
|
|
DateTime
|
|
}
|
|
}
|