可用来显示空值的时间选择控件2
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace XPangLib
{
/// <summary>
/// DateInput 的摘要说明。
/// </summary>
public class DateInput : System.Windows.Forms.UserControl
{
#region 成员控件
private System.Windows.Forms.MonthCalendar Calendar ;
private System.Windows.Forms.Form frmCalendar ;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Button btnMain;
private System.Windows.Forms.VScrollBar UpDown;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label lbSep3;
private System.Windows.Forms.TextBox tbDay;
private System.Windows.Forms.Label lbSep2;
private System.Windows.Forms.TextBox tbMonth;
private System.Windows.Forms.Label lbSep1;
private System.Windows.Forms.TextBox tbYear;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label lbSpace;
#endregion
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
private ContextMenu mnu = new ContextMenu() ;
#region 自定义属性
[Browsable(true),ReadOnly(false)]
public Size Size
{
set
{
base.Size = new Size(value.Width,21) ;
this.SetBounds(base.Location.X,base.Location.Y,this.Width,base.Height) ;
this.Refresh() ;
}
get
{
return base.Size ;
}
}
private string strDateFormat ;
[CategoryAttribute("显示属性和值"),
TypeConverterAttribute(typeof(DateFormatConverter)),
DescriptionAttribute("时间显示格式"),
ReadOnlyAttribute(false)]
public string DateFormat
{
get
{
return strDateFormat ;
}
set
{
strDateFormat = value ;
RefreshDisplay() ;
}
}
private string strFomatChar ;
[CategoryAttribute("显示属性和值"),
DescriptionAttribute("自定义显示格式"),
ReadOnlyAttribute(false)]
public string FomatChar
{
get
{
return strFomatChar ;
}
set
{
strFomatChar = value ;
RefreshDisplay() ;
}
}
bool blShowUpDown = false ;
[CategoryAttribute("显示属性和值"),
DescriptionAttribute("显示UpDown按钮"),
ReadOnlyAttribute(false)]
public bool ShowUpDown
{
get
{
return blShowUpDown ;
}
set
{
blShowUpDown = value ;
this.btnMain.Visible = !value ;
this.UpDown.Visible = value ;
}
}
private DateTime dtValue ;
/// <summary>
/// 选定的日期
/// </summary>
[CategoryAttribute("显示属性和值"),
DescriptionAttribute("选定的值"),
ReadOnlyAttribute(false)]
public DateTime Value
{
get
{
if (IsNull())
dtValue = DateTime.MinValue ;
else
{
string strYear = tbYear.Text ;
string strMonth = tbMonth.Text ;
string strDay = tbDay.Text ;
string strDate = strYear +"-"+ strMonth +"-" +strDay ;
dtValue = DateTime.Parse(strDate) ;
}
return dtValue ;
}
set
{
dtValue = value ;
if (dtValue == DateTime.MinValue)
EmptyInput() ;
else
{
tbYear.Text = dtValue.Year.ToString() ;
tbMonth.Text = dtValue.Month.ToString() ;
tbDay.Text = dtValue.Day.ToString() ;
}
this.Refresh() ;
}
}
#endregion