public class SuperCalendar : DateTimePicker
{
private DateTime? mValue = null;
private string CustomDateFormat = "MMM dd / yyyy";
private string NoDateFormat = "--- -- / ----";
private DateTime NullDate = DateTime.Parse("1753-01-01");
public SuperCalendar() : base() { }
public DateTime? m_value
{
get
{
return mValue;
}
set
{
if (value != null)
{
this.Value = value.Value;
}
else
{
this.Value = NullDate;
}
}
}
protected override void OnDropDown(EventArgs eventargs)
{
if (Value.Year < 1900)
{
base.Value = DateTime.Now;
} else {
base.Value = mValue;
}
base.OnDropDown(eventargs);
}
protected override void OnCloseUp(EventArgs eventargs)
{
base.OnCloseUp(eventargs);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x4e)
{
NMHDR nm = (NMHDR)m.GetLParam(typeof(NMHDR));
if (nm.Code == -746 || nm.Code == -722)
{
this.Value = base.Value;
}
}
base.WndProc(ref m);
}
public new DateTime Value
{
get
{
if (mValue == null)
{
return NullDate;
}
else
{
return mValue.Value;
}
}
set
{
if (value.Year < 1900)
{
mValue = null;
CustomFormat = NoDateFormat;
}
else
{
mValue = value;
base.Value = value;
CustomFormat = CustomDateFormat;
}
}
}
public class SuperCalendar : DateTimePicker
{
private DateTime? mValue = null;
private string CustomDateFormat = "MMM dd / yyyy";
private string NoDateFormat = "--- -- / ----";
private DateTime NullDate = DateTime.Parse("1753-01-01");
public SuperCalendar() : base() { }
public DateTime? m_value
{
get
{
return mValue;
}
set
{
if (value != null)
{
this.Value = value.Value;
}
else
{
this.Value = NullDate;
}
}
}
protected override void OnDropDown(EventArgs eventargs)
{
if (Value.Year < 1900)
{
}
base.Value = DateTime.Now;
base.OnDropDown(eventargs);
}
protected override void OnCloseUp(EventArgs eventargs)
{
base.OnCloseUp(eventargs);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x4e)
{
NMHDR nm = (NMHDR)m.GetLParam(typeof(NMHDR));
if (nm.Code == -746 || nm.Code == -722)
{
this.Value = base.Value;
}
}
base.WndProc(ref m);
}
public new DateTime Value
{
get
{
if (mValue == null)
{
return NullDate;
}
else
{
return mValue.Value;
}
}
set
{
if (value.Year < 1900)
{
mValue = null;
CustomFormat = NoDateFormat;
}
else
{
mValue = value;
base.Value = value;
CustomFormat = CustomDateFormat;
}
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if (e.KeyCode == Keys.Delete)
this.Value = DateTime.Parse("1753-01-01");
}
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
private struct NMHDR
{
public IntPtr HwndFrom;
public int IdFrom;
public int Code;
}
}
Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.
Comments (0)