Introduction
I encountered this problem when using System.Windows.Forms.MonthCalendar
in my app. When the user changes and selects another month or year on MonthCalendar
, this component displays incorrectly (some dates are missing or are in bold). I think it's a problem with the OnPaint()
method of this component. It's really a Microsoft problem.
I asked my friends and searched on Google. Many people had faced the same problem, but had not found a solution yet.
Using the Code
I tested and saw that this problem occurred when calling Application.EnableVisualStyles()
in the Program.cs file.
To resolve this problem, I have given two ideals here:
- You should write one custom control or component which inherits or wraps this
MonthCalender
of Microsoft and overrides the OnPaint()
method. It will help you to have a better component which supports your business (such as select range date on MonthCalender
). - Add
mcalSelectDate.SelectionEnd = mcalSelectDate.SelectionStart
into MonthCalendar_DateChanged
event.
private void mcalSelectDate_DateChanged(object sender, DateRangeEventArgs e)
{
mcalSelectDate.SelectionEnd = mcalSelectDate.SelectionStart;
}
Hope my suggestions will help you.
History
- 4th January, 2008: Initial post