The System.Windows.Forms.MonthCalendar control sets the ControlStyles.UserPaint bit flag to false, so the System.Windows.Forms.MonthCalendar will not raise the MonthCalendar.Paint event. To provide a custom look to the System.Windows.Forms.MonthCalendar control, you should override the Control.OnPrint(PaintEventArgs) method, call the base implementation of Control.OnPrint(PaintEventArgs), and then perform custom painting.