微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 更改.NET中DateTimePicker的背景颜色

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

编辑:我在谈论Windows窗体,而不是ASP.

解决方法

根据 MSDN

Setting the BackColor has no effect on
the appearance of the 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);
}

原文地址:https://www.jb51.cc/csharp/95213.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐