Элемент управления monthcalendar выбранный диапазон отображается неправильно - PullRequest
2 голосов
/ 25 февраля 2010

У меня есть элемент управления monthcalendar в моей форме, и когда я выбираю диапазон, диапазон просто исчезает. Я проверил titlebackcolor (Highlight) и titleforecolor (AliceBlue), и они не установлены на белый.

Кто-нибудь знает, что я могу сделать, чтобы исправить это?

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Я получаю такое же поведение. На этом скриншоте я выбрал 12-14 января 2011 года.

Incorrect rendering of range in MonthCalendar control

Причина неправильной визуализации связана с Визуальные стили . Они включены по умолчанию, что обычно является тем, что вы хотите. Например, кнопки с закругленными углами.

Если вы отключите VisualStyles (удалив линию Application.EnableVisualStyles() из вашего Program.cs), CalendarControl начертирует диапазон так, как вы ожидаете. Однако отключение визуальных стилей также означает, что для некоторых других элементов управления, таких как Button и CheckBox, устаревший рендеринг выглядит. На этом снимке экрана показан правильно выбранный диапазон в элементе управления MonthlyCalendar, а также устаревшие элементы управления Button и CheckBox.

Correct rendering of range in MonthCalendar control

Хотя ссылка MSDN для класса MonthCalendar не упоминает об этом, в ссылке MSDN о визуальных стилях упоминается в примечании.

Я не знаю, как не использовать визуальные стили для визуализации в Vista или Windows 7, так как у меня под рукой только Windows XP. Но если рендеринг в этих операционных системах одинаковый, лучше вообще не использовать выбор диапазона элемента управления MonthCalendar.

0 голосов
/ 06 мая 2010

Проверьте TrailingForeColor свойство.

Также см. Подробности по MSDN здесь . Вы можете найти что-нибудь полезное, что вы пропустили.

...