我的表单中有一个月历控件,当我选择一个范围时,该范围就会变白。我检查了 titlebackcolor (Highlight) 和 titleforecolor (AliceBlue),它们没有设置为白色。
有谁知道我能做些什么来纠正这个问题?
我的表单中有一个月历控件,当我选择一个范围时,该范围就会变白。我检查了 titlebackcolor (Highlight) 和 titleforecolor (AliceBlue),它们没有设置为白色。
有谁知道我能做些什么来纠正这个问题?
我得到同样的行为。在此屏幕截图中,我选择了 2011 年 1 月 12 日至 14 日。
渲染不正确的原因与视觉样式有关。它们默认启用,通常是您想要的。例如,它可以启用带有圆角的按钮。
如果您禁用VisualStyles(通过Application.EnableVisualStyles()
从 Program.cs 中删除该行),CalendarControl 将按照您的预期绘制范围。但是,禁用视觉样式也意味着您会在某些其他控件(如 Button 和 CheckBox 控件)上呈现过时的外观。此屏幕截图显示了 MonthlyCalendar 控件中正确呈现的范围选择,还显示了过时的 Button 和 CheckBox 控件。
虽然MonthCalendar 类的 MSDN 参考没有提到这一点,但视觉样式的 MSDN 参考 确实在其注释中提到了它。
我不知道如何不在 Vista 或 Windows 7 上使用 Visual Styles 渲染,因为我手头只有 Windows XP。但如果在这些操作系统上呈现相同,则最好不要使用 MonthCalendar 控件的范围选择。
检查TrailingForeColor
财产。
还可以在此处查看 MSDN 上的详细信息。您可能会发现任何您错过的有用信息。