在.NET中(至少在2008版本,也许在2005年版)中,更改DateTimePicker的BackColor属性对外观绝对没有影响.如何更改文本区域的背景颜色,而不是更改下拉式日历?
编辑:我在谈论Windows窗体,而不是ASP.
解决方法
根据
MSDN:
Setting the
BackColor
has no effect on
the appearance of theDateTimePicker
.
您需要编写一个扩展DateTimePicker的自定义控件.覆盖BackColor属性和WndProc方法.
每当您更改BackColor时,请勿忘记调用myDTPicker.Invalidate()方法.这将强制使用指定的新颜色重新绘制控件.
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); }