According to MSDN :
Setting the BackColor
has no effect on
the appearance of the DateTimePicker
.
You need to write a custom control that extends DateTimePicker
. Override the BackColor
property and the WndProc
method.
Whenever you change the BackColor
, don't forget to call the myDTPicker.Invalidate()
method. This will force the control to redrawn using the new color specified.
const int WM_ERASEBKGND = 0x14;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if(m.Msg == WM_ERASEBKGND)
{
using(var g = Graphics.FromHdc(m.WParam))
{
using(var b = new SolidBrush(_backColor))
{
g.FillRectangle(b, ClientRectangle);
}
}
return;
}
base.WndProc(ref m);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…