当前位置:  开发笔记 > 编程语言 > 正文

在.NET中更改DateTimePicker的背景颜色

如何解决《在.NET中更改DateTimePicker的背景颜色》经验,为你挑选了1个好方法。

.NET(至少在2008版本中,也许在2005年也是如此),改变a的BackColor属性DateTimePicker对外观完全没有影响.如何更改文本区域的背景颜色,而不是下拉日历的背景颜色?

编辑:我说的是Windows表单,而不是ASP.



1> Vivek..:

根据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);
}


我在Vista下尝试了这个改变(有和没有视觉样式),它不起作用.
与Phil Wright一样运行Win 7的经验相同
推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有