【发布时间】:2010-02-25 00:36:02
【问题描述】:
我的表单中有一个月历控件,当我选择一个范围时,该范围会变白。我检查了 titlebackcolor (Highlight) 和 titleforecolor (AliceBlue),它们没有设置为白色。
有人知道我可以做些什么来纠正这个问题吗?
【问题讨论】:
标签: .net winforms controls monthcalendar
我的表单中有一个月历控件,当我选择一个范围时,该范围会变白。我检查了 titlebackcolor (Highlight) 和 titleforecolor (AliceBlue),它们没有设置为白色。
有人知道我可以做些什么来纠正这个问题吗?
【问题讨论】:
标签: .net winforms controls monthcalendar
我得到相同的行为。在此屏幕截图中,我选择了 2011 年 1 月 12 日至 14 日。
渲染不正确的原因与Visual Styles有关。它们默认启用,通常是您想要的。例如,它可以启用带有圆角的按钮。
如果您禁用 VisualStyles(通过从Program.cs 中删除Application.EnableVisualStyles() 行),CalendarControl 将按照您的预期绘制范围。但是,禁用视觉样式也意味着您对某些其他控件(如 Button 和 CheckBox 控件)的渲染看起来过时了。此屏幕截图显示了 MonthlyCalendar 控件中正确呈现的范围选择,还显示了过时的 Button 和 CheckBox 控件。
虽然MSDN reference for the MonthCalendar class 没有提及这一点,但MSDN Reference on Visual Styles 确实在其注释中提及。
我不知道如何不在 Vista 或 Windows 7 上使用 Visual Styles 渲染,因为我手头只有 Windows XP。但是,如果在这些操作系统上呈现相同,则最好不要使用 MonthCalendar 控件的范围选择。
【讨论】:
检查TrailingForeColorproperty。
还可以在 MSDN here 上查看详细信息。您可能会发现任何您错过的有用信息。
【讨论】: