我的表单中有一个月历控件,当我选择一个范围时,该范围就会变白。我检查了 titlebackcolor(突出显示)和 titleforecolor(AliceBlue),它们没有设置为白色。
有人知道我可以做什么来纠正这个问题吗?
最佳答案
我也有同样的行为。在此屏幕截图中,我选择了 2011 年 1 月 12 日至 14 日。
渲染不正确的原因与Visual Styles有关。 。它们默认启用,通常是您想要的。例如,它支持带有圆角的按钮。
如果您禁用 VisualStyles(通过从 Program.cs 中删除 Application.EnableVisualStyles()
行),CalendarControl 将按照您的预期绘制范围。但是,禁用视觉样式也意味着其他一些控件(如按钮和复选框控件)的呈现外观会过时。此屏幕截图显示了 MonthlyCalendar 控件中正确呈现的范围选择,还显示了过时的 Button 和 CheckBox 控件。
尽管MSDN reference for the MonthCalendar class没有提到这一点,MSDN Reference on Visual Styles 确实在其注释中提到了它。
我不知道在 Vista 或 Windows 7 上不使用视觉样式会如何渲染,因为我手头只有 Windows XP。但如果这些操作系统上的渲染效果相同,则最好根本不要使用 MonthCalendar 控件的范围选择。
关于.net - Monthcalendar 控件选定的范围未正确绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330775/