(0) exportieren Drucken
Alle erweitern

MonthCalendar-Klasse

Stellt ein Windows-Benutzersteuerelement dar, mit dem der Benutzer in einem nach Monaten angezeigten Kalender ein Datum auswählen kann.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class MonthCalendar : Control
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class MonthCalendar extends Control
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class MonthCalendar extends Control

Das MonthCalendar-Steuerelement ermöglicht es dem Benutzer, ein Datum über eine optische Anzeige auszuwählen. Die auswählbaren Datums- und Zeitangaben lassen sich durch Festlegen der MinDate-Eigenschaft und der MaxDate-Eigenschaft einschränken.

Sie können die Darstellung des Kalenderteils des Steuerelements ändern, indem Sie die ForeColor-Eigenschaft, die Font-Eigenschaft, die TitleBackColor-Eigenschaft, die TitleForeColor-Eigenschaft, die TrailingForeColor-Eigenschaft und die BackColor-Eigenschaft festlegen.

Das MonthCalendar-Steuerelement wird vom Betriebssystem gezeichnet. Daher wird das Paint-Ereignis nie ausgelöst. Wenn Sie eine angepasste Darstellung des MonthCalendar-Steuerelements bereitstellen müssen, überschreiben Sie die OnPrint-Methode, rufen Sie die Basisimplementierung von OnPrint auf, und führen Sie anschließend einen benutzerdefinierten Zeichenvorgang aus.

Wenn Sie das Datum benutzerdefiniert formatieren und die Auswahl auf nur ein Datum beschränken müssen, ist es u. U. sinnvoll, ein DateTimePicker-Steuerelement statt eines MonthCalendar zu verwenden. Bei der Verwendung von DateTimePicker entfallen Validierungen der Werte für Datum und Uhrzeit weitgehend.

Weitere Informationen über Monatskalender-Steuerelemente finden Sie unter "Month Calendar Controls" in der Platform SDK-Dokumentation unter http://www.microsoft.com/germany/msdn (nur auf Englisch verfügbar).

HinweisHinweis

Die Verwendung von MonthCalendar mit aktivierten visuellen Stilen führt dazu, dass ein Auswahlbereich für das MonthCalendar-Steuerelement nicht korrekt gezeichnet wird und dass das aktuelle Datum in einem Quadrat enthalten ist, wenn ShowTodayCircle auf true festgelegt ist.

Im folgenden Codebeispiel wird ein Formular angezeigt, das ein MonthCalendar-Steuerelement enthält, in dem ein Kalenderjahr angezeigt wird. Im Beispiel wird das Festlegen der BackColor-Eigenschaft, der ForeColor-Eigenschaft, der TitleBackColor-Eigenschaft, der TitleForeColor-Eigenschaft, der CalendarDimensions-Eigenschaft und der TrailingForeColor-Eigenschaft veranschaulicht, um das Aussehen des Kalendersteuerelements anzupassen. Andere Eigenschaften, z. B. AnnuallyBoldedDates, BoldedDates und MonthlyBoldedDates, werden so festgelegt, dass durch sie benutzerdefiniert bestimmt wird, welche Datumsangaben fett formatiert werden. Außerdem werden in dem Beispiel die FirstDayOfWeek-Eigenschaft, die MaxDate-Eigenschaft, die MinDate-Eigenschaft und die MaxSelectionCount-Eigenschaft zum Ändern des Kalenderformats verwendet. Das DateSelected-Ereignis und das DateChanged-Ereignis werden ebenfalls behandelt, und ihr Status wird im Formular angezeigt.

using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
    private System.Windows.Forms.MonthCalendar monthCalendar1;
    private System.Windows.Forms.TextBox textBox1;

    [STAThread]
    static void Main() 
    {
        Application.Run(new Form1());
    }

    public Form1()
    {
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
        this.textBox1.Location = new System.Drawing.Point(48, 488);
        this.textBox1.Multiline = true;
        this.textBox1.ReadOnly = true;
        this.textBox1.Size = new System.Drawing.Size(824, 32);

        // Create the calendar.
        this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();

        // Set the calendar location.
        this.monthCalendar1.Location = new System.Drawing.Point(47, 16);

        // Change the color.
        this.monthCalendar1.BackColor = System.Drawing.SystemColors.Info;
        this.monthCalendar1.ForeColor = System.Drawing.Color.FromArgb(
                                 ((System.Byte)(192)), ((System.Byte)(0)), ((System.Byte)(192)));
        this.monthCalendar1.TitleBackColor = System.Drawing.Color.Purple;
        this.monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow;
        this.monthCalendar1.TrailingForeColor = System.Drawing.Color.FromArgb(
                                 ((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(0)));

        // Add dates to the AnnuallyBoldedDates array.
        this.monthCalendar1.AnnuallyBoldedDates = 
            new System.DateTime[] { new System.DateTime(2002, 4, 20, 0, 0, 0, 0),
                                    new System.DateTime(2002, 4, 28, 0, 0, 0, 0),
                                    new System.DateTime(2002, 5, 5, 0, 0, 0, 0),
                                    new System.DateTime(2002, 7, 4, 0, 0, 0, 0),
                                    new System.DateTime(2002, 12, 15, 0, 0, 0, 0),
                                    new System.DateTime(2002, 12, 18, 0, 0, 0, 0)};

        // Add dates to BoldedDates array.
        this.monthCalendar1.BoldedDates = new System.DateTime[] {new System.DateTime(2002, 9, 26, 0, 0, 0, 0)};

        // Add dates to MonthlyBoldedDates array.
        this.monthCalendar1.MonthlyBoldedDates = 
           new System.DateTime[] {new System.DateTime(2002, 1, 15, 0, 0, 0, 0),
                                  new System.DateTime(2002, 1, 30, 0, 0, 0, 0)};

        // Configure the calendar to display 3 rows by 4 columns of months.
        this.monthCalendar1.CalendarDimensions = new System.Drawing.Size(4, 3);

        // Set week to begin on Monday.
        this.monthCalendar1.FirstDayOfWeek = System.Windows.Forms.Day.Monday;

        // Set the maximum visible date on the calendar to 12/31/2010.
        this.monthCalendar1.MaxDate = new System.DateTime(2010, 12, 31, 0, 0, 0, 0);

        // Set the minimum visible date on calendar to 12/31/2010.
        this.monthCalendar1.MinDate = new System.DateTime(1999, 1, 1, 0, 0, 0, 0);

        // Only allow 21 days to be selected at the same time.
        this.monthCalendar1.MaxSelectionCount = 21;

        // Set the calendar to move one month at a time when navigating using the arrows.
        this.monthCalendar1.ScrollChange = 1;

        // Do not show the "Today" banner.
        this.monthCalendar1.ShowToday = false;

        // Do not circle today's date.
        this.monthCalendar1.ShowTodayCircle = false;
            
        // Show the week numbers to the left of each week.
        this.monthCalendar1.ShowWeekNumbers = true;

        // Add event handlers for the DateSelected and DateChanged events
        this.monthCalendar1.DateSelected += new System.Windows.Forms.DateRangeEventHandler(this.monthCalendar1_DateSelected);
        this.monthCalendar1.DateChanged += new System.Windows.Forms.DateRangeEventHandler(this.monthCalendar1_DateChanged);

        // Set up how the form should be displayed and add the controls to the form.
        this.ClientSize = new System.Drawing.Size(920, 566);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {this.textBox1, this.monthCalendar1});
        this.Text = "Month Calendar Example";
    }

    private void monthCalendar1_DateSelected(object sender, System.Windows.Forms.DateRangeEventArgs e)
    {
        // Show the start and end dates in the text box.
        this.textBox1.Text = "Date Selected: Start = " +
            e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString();
    }

    private void monthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e)
    {
        // Show the start and end dates in the text box.
        this.textBox1.Text = "Date Changed: Start =  " +
            e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString();
    }
}

import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends System.Windows.Forms.Form
{
    private System.Windows.Forms.MonthCalendar monthCalendar1;
    private System.Windows.Forms.TextBox textBox1;

    /** @attribute STAThread()
     */
    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } //main

    public Form1()
    {
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.textBox1.set_BorderStyle(
            System.Windows.Forms.BorderStyle.FixedSingle);
        this.textBox1.set_Location(new System.Drawing.Point(48, 488));
        this.textBox1.set_Multiline(true);
        this.textBox1.set_ReadOnly(true);
        this.textBox1.set_Size(new System.Drawing.Size(824, 32));
        // Create the calendar.
        this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();
        // Set the calendar location.
        this.monthCalendar1.set_Location(new System.Drawing.Point(47, 16));
        // Change the color.
        this.monthCalendar1.set_BackColor(
            System.Drawing.SystemColors.get_Info());
        this.monthCalendar1.set_ForeColor(
            System.Drawing.Color.FromArgb(192, 0, 192));
        this.monthCalendar1.set_TitleBackColor(System.Drawing.Color.get_Purple());
        this.monthCalendar1.set_TitleForeColor(System.Drawing.Color.get_Yellow());
        this.monthCalendar1.set_TrailingForeColor(
            System.Drawing.Color.FromArgb(192, 192, 0));
        // Add dates to the AnnuallyBoldedDates array.
        this.monthCalendar1.set_AnnuallyBoldedDates(new System.DateTime[] {
            new System.DateTime(2002, 4, 20, 0, 0, 0, 0),
            new System.DateTime(2002, 4, 28, 0, 0, 0, 0),
            new System.DateTime(2002, 5, 5, 0, 0, 0, 0),
            new System.DateTime(2002, 7, 4, 0, 0, 0, 0),
            new System.DateTime(2002, 12, 15, 0, 0, 0, 0),
            new System.DateTime(2002, 12, 18, 0, 0, 0, 0) });
        // Add dates to BoldedDates array.
        this.monthCalendar1.set_BoldedDates(new System.DateTime[] {
            new System.DateTime(2002, 9, 26, 0, 0, 0, 0) });
        // Add dates to MonthlyBoldedDates array.
        this.monthCalendar1.set_MonthlyBoldedDates(new System.DateTime[] {
            new System.DateTime(2002, 1, 15, 0, 0, 0, 0),
            new System.DateTime(2002, 1, 30, 0, 0, 0, 0) });
        // Configure the calendar to display 3 rows by 4 columns of months.
        this.monthCalendar1.set_CalendarDimensions(new System.Drawing.Size(4, 3));
        // Set week to begin on Monday.
        this.monthCalendar1.set_FirstDayOfWeek(System.Windows.Forms.Day.Monday);
        // Set the maximum visible date on the calendar to 12/31/2010.
        this.monthCalendar1.set_MaxDate(
            new System.DateTime(2010, 12, 31, 0, 0, 0, 0));
        // Set the minimum visible date on calendar to 12/31/2010.
        this.monthCalendar1.set_MinDate(
            new System.DateTime(1999, 1, 1, 0, 0, 0, 0));
        // Only allow 21 days to be selected at the same time.
        this.monthCalendar1.set_MaxSelectionCount(21);
        // Set the calendar to move one month at a time when navigating
        // using the arrows.
        this.monthCalendar1.set_ScrollChange(1);
        // Do not show the "Today" banner.
        this.monthCalendar1.set_ShowToday(false);
        // Do not circle today's date.
        this.monthCalendar1.set_ShowTodayCircle(false);
        // Show the week numbers to the left of each week.
        this.monthCalendar1.set_ShowWeekNumbers(true);
        // Add event handlers for the DateSelected and DateChanged events
        this.monthCalendar1.add_DateSelected(
            new System.Windows.Forms.DateRangeEventHandler(
            this.monthCalendar1_DateSelected));
        this.monthCalendar1.add_DateChanged(
            new System.Windows.Forms.DateRangeEventHandler(
            this.monthCalendar1_DateChanged));
        // Set up how the form should be displayed and add the controls to
        // the form.
        this.set_ClientSize(new System.Drawing.Size(920, 566));
        this.get_Controls().AddRange(new System.Windows.Forms.Control[] {
            this.textBox1, this.monthCalendar1 });
        this.set_Text("Month Calendar Example");
    } //Form1

    private void monthCalendar1_DateSelected(Object sender,
        System.Windows.Forms.DateRangeEventArgs e)
    {
        // Show the start and end dates in the text box.
        this.textBox1.set_Text("Date Selected: Start = "
            + e.get_Start().ToShortDateString() + " : End = "
            + e.get_End().ToShortDateString());
    } //monthCalendar1_DateSelected

    private void monthCalendar1_DateChanged(Object sender,
        System.Windows.Forms.DateRangeEventArgs e)
    {
        // Show the start and end dates in the text box.
        this.textBox1.set_Text("Date Changed: Start =  "
            + e.get_Start().ToShortDateString() + " : End = "
            + e.get_End().ToShortDateString());
    } //monthCalendar1_DateChanged
} //Form1

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
        System.Windows.Forms.MonthCalendar

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0
Anzeigen:
© 2014 Microsoft