Condividi tramite


Procedura: modificare l'aspetto del controllo MonthCalendar Windows Form

Il controllo Windows Form MonthCalendar consente di personalizzare l'aspetto del calendario in molti modi. Ad esempio, è possibile impostare la combinazione di colori e scegliere di visualizzare o nascondere i numeri della settimana e la data corrente.

Per modificare la combinazione di colori del calendario del mese

  • Impostare proprietà come TitleBackColor, TitleForeColor e TrailingForeColor. La TitleBackColor proprietà determina anche il colore del carattere per i giorni della settimana. La TrailingForeColor proprietà determina il colore delle date che precedono e seguono il mese o i mesi visualizzati.

    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 partire da Windows Vista e a seconda del tema, l'impostazione di alcune proprietà potrebbe non modificare l'aspetto del calendario. Ad esempio, se Windows è impostato per l'uso del tema Aero, l'impostazione delle BackColorproprietà , TitleBackColorTitleForeColor, o TrailingForeColor non ha alcun effetto. Questo perché viene eseguito il rendering di una versione aggiornata del calendario con un aspetto derivato in fase di esecuzione dal tema corrente del sistema operativo. Se si vogliono usare queste proprietà e abilitare la versione precedente del calendario, è possibile disabilitare gli stili di visualizzazione per l'applicazione. La disabilitazione degli stili di visualizzazione potrebbe influire sull'aspetto e sul comportamento di altri controlli nell'applicazione. Per disabilitare gli stili di visualizzazione in Visual Basic, aprire Progettazione progetti e deselezionare la casella di controllo Abilita stili di visualizzazione XP. Per disabilitare gli stili di visualizzazione in C#, aprire Program.cs e impostare come Application.EnableVisualStyles();commento . Per altre informazioni sugli stili di visualizzazione, vedere Abilitazione degli stili di visualizzazione.

Per visualizzare la data corrente nella parte inferiore del controllo

  • Impostare la proprietà ShowToday su true. L'esempio seguente alterna la visualizzazione e l'omissione della data odierna quando si fa doppio clic sul modulo.

    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++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.

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

Per visualizzare i numeri delle settimane

  • Impostare la proprietà ShowWeekNumbers su true. È possibile impostare questa proprietà nel codice o nella Finestra Proprietà.

    I numeri della settimana vengono visualizzati in una colonna separata a sinistra del primo giorno della settimana.

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

Vedi anche