monthcalendar控件选中的范围未正确绘制

时间:2010-02-25 00:36:03

标签: .net winforms controls monthcalendar

我的表单中有一个monthcalendar控件,当我选择一个范围时,范围就是白色。我检查了titlebackcolor(突出显示)和titleforecolor(AliceBlue),它们没有设置为白色。

任何人都知道我可以做些什么来纠正这个问题?

2 个答案:

答案 0 :(得分:3)

我得到了同样的行为。在此截图中,我选择了2011年1月12日至14日。

Incorrect rendering of range in MonthCalendar control

呈现不正确的原因与Visual Styles有关。它们默认启用,通常是您想要的。例如,它可以启用带圆角的按钮。

如果您禁用 VisualStyles(通过从Program.cs中删除行Application.EnableVisualStyles()),CalendarControl会按照您的预期绘制范围。但是,禁用“视觉样式”也意味着您会看到一些其他控件(如Button和CheckBox控件)的过时外观渲染。此屏幕截图显示了MonthlyCalendar控件中正确呈现的范围选择,还显示了过时的Button和CheckBox控件。

Correct rendering of range in MonthCalendar control

虽然MSDN reference for the MonthCalendar class未提及此问题,但MSDN Reference on Visual Styles 在其注释中提及

我不知道如何在Vista或Windows 7上使用Visual Styles渲染,因为我手头只有Windows XP。但是如果这些操作系统上的渲染是相同的,那么最好不要使用MonthCalendar控件的范围选择。

答案 1 :(得分:0)

检查TrailingForeColor属性。

另请查看有关MSDN here的详细信息。您可能会发现任何有用的错误。