在.NET
(至少在2008版本中,也许在2005年也是如此),改变a的BackColor
属性DateTimePicker
对外观完全没有影响.如何更改文本区域的背景颜色,而不是下拉日历的背景颜色?
编辑:我说的是Windows表单,而不是ASP.
根据MSDN:
设置
BackColor
对外观没有影响DateTimePicker
.
您需要编写一个扩展的自定义控件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); }