Compartir a través de


Cómo: Cambiar la apariencia del control MonthCalendar de formularios Windows Forms

El control MonthCalendar de Windows Forms permite personalizar la apariencia del calendario de muchas maneras. Por ejemplo, puede establecer la combinación de colores y elegir mostrar u ocultar los números de la semana y la fecha actual.

Para cambiar la combinación de colores del calendario del mes

  • Establezca propiedades como TitleBackColor, TitleForeColor y TrailingForeColor. La propiedad TitleBackColor también determina el color de fuente de los días de la semana. La propiedad TrailingForeColor determina el color de las fechas que preceden y siguen al mes o los meses mostrados.

    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;  
    

    Nota

    A partir de Windows Vista, y en función del tema, es posible que la configuración de algunas propiedades no cambie la apariencia del calendario. Por ejemplo, si Windows se configura para usar el tema Aero, establecer las propiedades BackColor, TitleBackColor, TitleForeColor o TrailingForeColor no tiene ningún efecto. Esto se debe a que una versión actualizada del calendario se representa con una apariencia que se deriva en tiempo de ejecución del tema del sistema operativo actual. Si desea usar estas propiedades y habilitar la versión anterior del calendario, puede deshabilitar los estilos visuales de la aplicación. Deshabilitar los estilos visuales puede afectar a la apariencia y el comportamiento de otros controles de la aplicación. Para deshabilitar estilos visuales en Visual Basic, abra el Diseñador de proyectos y desactive la casilla Habilitar estilos visuales de XP. Para deshabilitar estilos visuales en C#, abra Program.cs y convierta Application.EnableVisualStyles(); en comentario. Para obtener más información sobre los estilos visuales, vea Habilitar estilos visuales.

Para mostrar la fecha actual en la parte inferior del control

  • Establezca la propiedad ShowToday en true. En el ejemplo siguiente se alterna entre mostrar y omitir la fecha del día de hoy al hacer doble clic en el formulario.

    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# y Visual C++). Incluya el código siguiente en el constructor del formulario para registrar el controlador de eventos.

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

Para mostrar los números de la semana

  • Establezca la propiedad ShowWeekNumbers en true. Esta propiedad se puede establecer en el código o en la ventana Propiedades.

    Los números de la semana aparecen en una columna independiente a la izquierda del primer día de la semana.

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

Consulte también