Gewusst wie: Ändern der Darstellung des MonthCalendar-Steuerelements in Windows Forms

Mit dem Windows Forms-Steuerelement MonthCalendar können Sie die Darstellung des Kalenders vielseitig anpassen. Sie können beispielsweise das Farbschema festlegen sowie die Kalenderwoche und das aktuelle Datum anzeigen oder ausblenden.

So ändern Sie das Farbschema des Monatskalenders

  • Legen Sie Eigenschaften wie TitleBackColor, TitleForeColor und TrailingForeColor fest. Die TitleBackColor-Eigenschaft bestimmt auch die Schriftfarbe für die Wochentage. Die TrailingForeColor-Eigenschaft bestimmt die Farbe der Datumsangaben von Monaten vor oder nach dem angezeigten Monat.

    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;  
    

    Hinweis

    Ab Windows Vista und abhängig vom Design wird die Darstellung des Kalenders möglicherweise nicht durch die Einstellung einiger Eigenschaften geändert. Wenn Windows beispielsweise auf das Aero-Design festgelegt ist, hat die Einstellung der Eigenschaften BackColor, TitleBackColor, TitleForeColor oder TrailingForeColor keine Auswirkung. Dies liegt daran, dass eine aktualisierte Version des Kalenders mit einer Darstellung gerendert wird, die zur Laufzeit aus dem aktuellen Betriebssystemdesign abgeleitet wird. Wenn Sie diese Eigenschaften verwenden und die frühere Version des Kalenders aktivieren möchten, können Sie visuelle Stile für Ihre Anwendung deaktivieren. Das Deaktivieren von visuellen Stilen kann sich auf das Aussehen und Verhalten anderer Steuerelemente in Ihrer Anwendung auswirken. Um visuelle Stile in Visual Basic zu deaktivieren, öffnen Sie den Projekt-Designer, und deaktivieren Sie das Kontrollkästchen Visuelle XP-Stile aktivieren. Um visuelle Stile in C# zu deaktivieren, öffnen Sie Program.cs, und kommentieren Sie Application.EnableVisualStyles(); aus. Weitere Informationen zu visuellen Stilen finden Sie unter Aktivieren von visuellen Stilen.

So zeigen Sie das aktuelle Datum am unteren Rand des Steuerelements an

  • Setzen Sie die ShowToday-Eigenschaft auf true. Im folgenden Beispiel wird das aktuelle Datum durch Doppelklicken auf das Formular ein- oder ausgeblendet.

    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# und Visual C++) Fügen Sie folgenden Code in den Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.

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

So zeigen Sie Kalenderwochen an

  • Setzen Sie die ShowWeekNumbers-Eigenschaft auf true. Sie können diese Eigenschaft im Code oder im Eigenschaftenfenster festlegen.

    Kalenderwochen werden in einer separaten Spalte links vor dem ersten Tag der Woche angezeigt.

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

Weitere Informationen