如何在 Windows 窗体中更改 DateTimePicker 颜色

How to change DateTimePicker Color inWindows Forms

如果我在日历中更改日期,是否可以更改 dateTimePicker 的颜色?

你没有表现出任何努力,但是..

DateTimePicker class has ValueChanged event that occurs when the Value 属性 变化。

不清楚您想要更改哪种颜色,但您可以使用可用于它的CalendarMonthBackground or CalendarForeColor属性。

private void DateTimePicker1_ValueChanged(Object sender, EventArgs e)
{
   //
}

看起来更改 BackColorForeColor 属性对当前控件没有影响。在这种情况下,一般建议是这样的; 你必须自己渲染它,这真的很难Changing the background color of a DateTimePicker in .NET 上的解决方案可能也行不通。

MSDN 论坛上还有 thread,它使用继承自 DateTimePicker 的自定义控件。

没有 属性 用于更改 Backgroundcolor 更改 属性 但是有几个属性允许您自定义 DateTimePicker 控件的外观和行为。

如果您使用的是Windows Vista 或Windows 7 并且使用Aero 等主题,那么修改日历颜色的属性将不起作用。要查看更改日历颜色的结果,我们需要禁用视觉样式。为了演示,我们将这样做。在解决方案资源管理器中找到 Program.cs 并双击打开它。注释掉或删除行:

Application.EnableVisualStyles();

有关更多信息,请使用此 The DateTimePicker Control

也许不是直接的答案(肯定是迟来的):

我总是使用 DateTimePicker 控件并将其停靠(填充)到面板中。我确保面板至少有 1 的填充(所有边)。然后,如果我需要更改背景颜色或模拟边框颜色更改,我会在周围的面板上而不是直接在 DateTimePicker 控件上进行。

我的用例是模拟控件何时无效,即如果需要相关日期字段,则在周围面板上放置 Color.Red 边框。