Я получаю такое же поведение. На этом скриншоте я выбрал 12-14 января 2011 года.
Причина неправильной визуализации связана с Визуальные стили . Они включены по умолчанию, что обычно является тем, что вы хотите. Например, кнопки с закругленными углами.
Если вы отключите VisualStyles (удалив линию Application.EnableVisualStyles()
из вашего Program.cs), CalendarControl начертирует диапазон так, как вы ожидаете. Однако отключение визуальных стилей также означает, что для некоторых других элементов управления, таких как Button и CheckBox, устаревший рендеринг выглядит. На этом снимке экрана показан правильно выбранный диапазон в элементе управления MonthlyCalendar, а также устаревшие элементы управления Button и CheckBox.
Хотя ссылка MSDN для класса MonthCalendar не упоминает об этом, в ссылке MSDN о визуальных стилях упоминается в примечании.
Я не знаю, как не использовать визуальные стили для визуализации в Vista или Windows 7, так как у меня под рукой только Windows XP. Но если рендеринг в этих операционных системах одинаковый, лучше вообще не использовать выбор диапазона элемента управления MonthCalendar.