.net - Monthcalendar 控件选定的范围未正确绘制

标签 .net winforms controls monthcalendar

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

有人知道我可以做什么来纠正这个问题吗?

最佳答案

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

Incorrect rendering of range in MonthCalendar control

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

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

Correct rendering of range in MonthCalendar control

尽管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/

相关文章:

C# 在没有构建时引用的情况下在运行时调用静态方法?

c# - WPF前要不要学Window Form?

c# - 窗口自动调整大小不起作用

ruby 流量控制

c# - 对集合的一部分执行接口(interface)方法时,项目从 Ienumerable 列表中消失

c# - 使用 C# 在 asp.net 中创建全局变量

c# - 为什么在 C# 中使用 float.NaN != double.NaN?

c# - 在 Linq to Sql 中返回多列?

c# - 日期时间奇怪的行为

VB6标签最大字符串长度?