Condividi tramite


Procedura: Modificare l'aspetto del controllo MonthCalendar di Windows Forms

Il controllo MonthCalendar Windows Form 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 proprietà TitleBackColor determina anche il colore del carattere per i giorni della settimana. La proprietà TrailingForeColor 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 usare il tema Aero, l'impostazione delle proprietà BackColor, TitleBackColor, TitleForeColoro 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 la Progettazione guidata 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 commento Application.EnableVisualStyles();. Per altre informazioni sugli stili di visualizzazione, vedere Abilitazione degli stili di visualizzazione.

Per visualizzare la data corrente nella parte inferiore del controllo

  • Imposta 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;  
    

Vedere anche