我的需求:查看日历时候,给一些特定的日期和小时标注凸显出来
作为一个新手,这个过程有多艰辛不多说了。首先给日期凸显
方法一:
使用系统自带的monthCalendar日历控件,这是一个比较完善的控件,但是它为了提高性能,很多东西不支持通过直接改属性或行为就能完成的,比如我们给特定日期加背景色就不行,因为它是通过发Message给系统来改变的,当然网上说可以重写onpaint,我也相信这可以,但是我还不会用,希望会的人能分享一下。monthCalendar虽然不能变颜色但是它有个很关键的属性
BoldedDates(
获取或设置
DateTime
对象的数组,确定要以粗体显示的非周期性日期。),这个属性可以做到给不同月里的不同日期字体加粗,从而达到效果,
如图一;虽然这样能有一点效果,但还不明显,为此我尝试过重写来实现,可以参考下monthCalendar的api
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.monthcalendar(v=vs.110).aspx :由于时间问题,通过这种方法我还没调试出来该背景色的。有时间在研究一下。
方法二:
通过自定义控件,为此我找到了一个MPK Calendar,这是个自定义的控件,有源码,这个控件也有个属性BoldedDates,同样是加粗,接着还有个属性BoldedDateFontColor
这是给加粗日期改颜色的,效果很好,
如图二:
图一
图二