Практическое руководство. Изменение внешнего вида элемента управления MonthCalendar в Windows Forms

Элемент управления Windows Forms MonthCalendar позволяет настраивать внешний вид календаря различными способами. Например, можно задать цветовую схему и выбрать отображение или скрытие номеров недели и текущей даты.

Изменение цветовой схемы календаря месяца

  • Задайте такие свойства, как TitleBackColor, TitleForeColor и TrailingForeColor. Свойство TitleBackColor также определяет цвет шрифта для дней недели. Свойство TrailingForeColor определяет цвет дат, которые идут до или после отображаемого месяца или месяцев.

    MonthCalendar1.TitleBackColor = System.Drawing.Color.Blue  
    MonthCalendar1.TrailingForeColor = System.Drawing.Color.Red  
    MonthCalendar1.TitleForeColor = System.Drawing.Color.Yellow  
    
    monthCalendar1.TitleBackColor = System.Drawing.Color.Blue;  
    monthCalendar1.TrailingForeColor = System.Drawing.Color.Red;  
    monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow;  
    
    monthCalendar1->TitleBackColor = System::Drawing::Color::Blue;  
    monthCalendar1->TrailingForeColor = System::Drawing::Color::Red;  
    monthCalendar1->TitleForeColor = System::Drawing::Color::Yellow;  
    

    Примечание.

    Начиная с Windows Vista и в зависимости от темы установка некоторых свойств может не изменять внешний вид календаря. Например, если для Windows задано использование темы Aero, установка свойств BackColor, TitleBackColor, TitleForeColor или TrailingForeColor ни на что не повлияет. Это связано с тем, что обновленная версия календаря отображается с внешним видом, производимым во время выполнения из текущей темы операционной системы. Если вы хотите использовать эти свойства и включить более раннюю версию календаря, можно отключить стили оформления для приложения. Отключение стилей оформления может повлиять на внешний вид и поведение других элементов управления в приложении. Чтобы отключить стили оформления в Visual Basic, откройте конструктор проектов и снимите флажок Включить стили оформления XP. Чтобы отключить стили оформления в C#, откройте файл Program.cs и закомментируйте Application.EnableVisualStyles();. Дополнительные сведения о стилях оформления см. в статье Включение стилей оформления.

Отображение текущей даты в нижней части элемента управления

  • Установите свойство ShowToday в значение true. В приведенном ниже примере выполняется переключение между отображением и пропуском сегодняшней даты при двойном щелчке формы.

    Private Sub Form1_DoubleClick(ByVal sender As Object, _  
    ByVal e As System.EventArgs) Handles MyBase.DoubleClick  
       ' Toggle between True and False.  
       MonthCalendar1.ShowToday = Not MonthCalendar1.ShowToday  
    End Sub  
    
    private void Form1_DoubleClick(object sender, System.EventArgs e)  
    {  
       // Toggle between True and False.  
       monthCalendar1.ShowToday = !monthCalendar1.ShowToday;  
    }  
    
    private:  
       System::Void Form1_DoubleClick(System::Object ^  sender,  
          System::EventArgs ^  e)  
       {  
          // Toggle between True and False.  
          monthCalendar1->ShowToday = !monthCalendar1->ShowToday;  
       }  
    

    (Visual C#, Visual C++) Поместите следующий код в конструктор формы для регистрации обработчика событий.

    this.DoubleClick += new System.EventHandler(this.Form1_DoubleClick);  
    
    this->DoubleClick += gcnew System::EventHandler(this,  
       &Form1::Form1_DoubleClick);  
    

Отображение номеров недель

  • Установите свойство ShowWeekNumbers в значение true. Это свойство можно задать в коде или в окно свойств.

    Номера недель отображаются в отдельном столбце слева от первого дня недели.

    MonthCalendar1.ShowWeekNumbers = True  
    
    monthCalendar1.ShowWeekNumbers = true;  
    
    monthCalendar1->ShowWeekNumbers = true;  
    

См. также