When using MonthCalendar and needing BoldedDates I discover that no dates are bolded. Research tells me this control is drawn by system, in this case Vista, and that the problem is related to Visual Styles. Visual Styles can be disabled for whole application in settings, which I don't want to do, but I can see when testing that turning off Visual Styles does resolve the problem. So I found out you can disable theming for only one window (control window) with SetWindowTheme API call. Here is a common declaration for that:
Example usage:
Note that UpdateBoldedDates forces the control to recreate and it gets a new window handle, so you have to call DeactivateWindowTheme after each call to UpdateBoldedDates.
Tell me when bug is fixed, because now I will probably not notice
VB.NET:
Private Declare Function DeactivateWindowTheme Lib "uxtheme" Alias "SetWindowTheme" ( _
ByVal hWnd As IntPtr, _
Optional ByVal pszSubAppName As String = "", _
Optional ByVal pszSubIdList As String = "") _
As Integer
VB.NET:
Dim d1 As Date = Date.Now.AddDays(-1)
Dim d2 As Date = d1.AddDays(2)
Me.MonthCalendar1.BoldedDates = New Date() {d1, d2}
Me.MonthCalendar1.UpdateBoldedDates()
DeactivateWindowTheme(Me.MonthCalendar1.Handle)
Tell me when bug is fixed, because now I will probably not notice