How to: Display Specific Days in Bold with the Windows Forms MonthCalendar Control

The Windows Forms MonthCalendar control can display days in bold type, either as singular dates or on a repeating basis. You might do this to draw attention to special dates, such as holidays and weekends.

Three properties control this feature. The BoldedDates property contains single dates. The AnnuallyBoldedDates property contains dates that appear in bold every year. The MonthlyBoldedDates property contains dates that appear in bold every month. Each of these properties contains an array of DateTime objects. To add or remove a date from one of these lists, you must add or remove a DateTime object.

To make a date appear in bold type

  1. Create the DateTime objects.

    Dim myVacation1 As Date = New DateTime(2001, 6, 10)  
    Dim myVacation2 As Date = New DateTime(2001, 6, 17)  
    
    DateTime myVacation1 = new DateTime(2001, 6, 10);  
    DateTime myVacation2 = new DateTime(2001, 6, 17);  
    
    DateTime myVacation1 = DateTime(2001, 6, 10);  
    DateTime myVacation2 = DateTime(2001, 6, 17);  
    
  2. Make a single date bold by calling the AddBoldedDate, AddAnnuallyBoldedDate, or AddMonthlyBoldedDate method of the MonthCalendar control.

    MonthCalendar1.AddBoldedDate(myVacation1)  
    MonthCalendar1.AddBoldedDate(myVacation2)  
    
    monthCalendar1.AddBoldedDate(myVacation1);  
    monthCalendar1.AddBoldedDate(myVacation2);  
    
    monthCalendar1->AddBoldedDate(myVacation1);  
    monthCalendar1->AddBoldedDate(myVacation2);  
    

    –or–

    Make a set of dates bold all at once by creating an array of DateTime objects and assigning it to one of the properties.

    Dim VacationDates As DateTime() = {myVacation1, myVacation2}  
    MonthCalendar1.BoldedDates = VacationDates  
    
    DateTime[] VacationDates = {myVacation1, myVacation2};  
    monthCalendar1.BoldedDates = VacationDates;  
    
    Array<DateTime>^ VacationDates = {myVacation1, myVacation2};  
    monthCalendar1->BoldedDates = VacationDates;  
    

To make a date appear in the regular font

  1. Make a single bolded date appear in the regular font by calling the RemoveBoldedDate, RemoveAnnuallyBoldedDate, or RemoveMonthlyBoldedDate method.

    MonthCalendar1.RemoveBoldedDate(myVacation1)  
    MonthCalendar1.RemoveBoldedDate(myVacation2)  
    
    monthCalendar1.RemoveBoldedDate(myVacation1);  
    monthCalendar1.RemoveBoldedDate(myVacation2);  
    
    monthCalendar1->RemoveBoldedDate(myVacation1);  
    monthCalendar1->RemoveBoldedDate(myVacation2);  
    

    –or–

    Remove all the bolded dates from one of the three lists by calling the RemoveAllBoldedDates, RemoveAllAnnuallyBoldedDates, or RemoveAllMonthlyBoldedDates method.

    MonthCalendar1.RemoveAllBoldedDates()  
    
    monthCalendar1.RemoveAllBoldedDates();  
    
    monthCalendar1->RemoveAllBoldedDates();  
    
  2. Update the appearance of the font by calling the UpdateBoldedDates method.

    MonthCalendar1.UpdateBoldedDates()  
    
    monthCalendar1.UpdateBoldedDates();  
    
    monthCalendar1->UpdateBoldedDates();  
    

See also