Compartilhar via


Como alterar a aparência do controle MonthCalendar dos Windows Forms

O controle Windows Forms MonthCalendar permite que você personalize a aparência do calendário de várias maneiras. Por exemplo, você pode definir o esquema de cores e optar por exibir ou ocultar os números de semana e a data atual.

Alterar o esquema de cores do calendário do mês

  • Defina propriedades como TitleBackColor, TitleForeColor e TrailingForeColor. A TitleBackColor propriedade também determina a cor da fonte para os dias da semana. A TrailingForeColor propriedade determina a cor das datas que precedem e seguem o mês ou meses exibidos.

    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;  
    

    Observação

    Desde o Windows Vista e dependendo do tema, definir algumas propriedades pode não mudar a aparência do calendário. Por exemplo, se o Windows estiver definido para usar o tema Aero, a configuração das BackColorpropriedades , TitleBackColor, TitleForeColorou TrailingForeColor não terá efeito. Isso ocorre porque uma versão atualizada do calendário é renderizada com uma aparência derivada no tempo de execução do tema atual do sistema operacional. Se quiser usar essas propriedades e habilitar a versão anterior do calendário, desabilite os estilos visuais para o aplicativo. Desabilitar os estilos visuais pode afetar a aparência e o comportamento de outros controles no seu aplicativo. Para desabilitar estilos visuais no Visual Basic, abra o Project Designer e desmarque a caixa de seleção Habilitar estilos visuais do XP. Para desabilitar estilos visuais em C#, abra Program.cs e comente Application.EnableVisualStyles();. Para obter mais informações sobre estilos visuais, consulte Habilitando estilos visuais.

Exibir a data atual na parte inferior do controle

  • Defina a propriedade ShowToday como true. O exemplo abaixo alterna entre exibir e omitir a data atual ao clicar duas vezes no formulário.

    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++) Coloque o seguinte código no construtor do formulário para registrar o manipulador de eventos.

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

Exibir números de semana

  • Defina a propriedade ShowWeekNumbers como true. Você pode definir essa propriedade no código ou na janela Propriedades.

    Números de semana são exibidos em uma coluna separada à esquerda do primeiro dia da semana.

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

Confira também