Assembly : System.Windows.Forms (dans system.windows.forms.dll)
Syntaxe<ComVisibleAttribute(True)> _ <ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ Public Class MonthCalendar Inherits Control
Dim instance As MonthCalendar
[ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] public class MonthCalendar : Control
[ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] public ref class MonthCalendar : public Control
/** @attribute ComVisibleAttribute(true) */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ public class MonthCalendar extends Control
ComVisibleAttribute(true) ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) public class MonthCalendar extends Control
NotesLe contrôle MonthCalendar permet à l'utilisateur de sélectionner une date à l'aide d'un affichage visuel. Vous pouvez restreindre la fourchette de dates et d'heures qu'il sera possible de sélectionner en définissant les propriétés MinDate et MaxDate.
Vous pouvez modifier l'apparence de la partie calendrier du contrôle en définissant les propriétés ForeColor, Font, TitleBackColor, TitleForeColor, TrailingForeColor et BackColor.
Le contrôle MonthCalendar est dessiné par le système d'exploitation, l'événement Paint n'est donc jamais déclenché. Si vous devez fournir une apparence personnalisée au contrôle MonthCalendar, vous devez substituer la méthode OnPrint, appelez l'implémentation de base de OnPrint, puis effectuez une peinture personnalisée.
Si vous avez besoin d'un format de date personnalisé et d'une sélection limitée à une seule date, vous pouvez envisager d'utiliser un contrôle DateTimePicker au lieu de MonthCalendar. L'utilisation de DateTimePicker supprime en grande partie la nécessité de valider les valeurs de date/heure.
Pour plus d'informations sur les contrôles month calendar, consultez « contrôles Month Calendar » dans la documentation Kit de développement Platform SDK à l'adresse http://www.microsoft.com/france/msdn
Remarque |
|---|
| Utiliser MonthCalendar avec les styles visuels activés entraînera une peinture incorrecte d'une plage de sélection du contrôle MonthCalendar et l'affichage de la date du jour dans un carré si ShowTodayCircle a la valeur true. |
ExempleL'exemple de code suivant présente un formulaire contenant un contrôle MonthCalendar qui affiche une année calendrier. Il montre comment définir les propriétés BackColor, ForeColor, TitleBackColor, TitleForeColor,CalendarDimensions et TrailingForeColor pour personnaliser l'aspect du contrôle Calendar. D'autres propriétés telles que AnnuallyBoldedDates, BoldedDates et MonthlyBoldedDates sont définies afin de personnaliser les dates qui sont mises en gras. L'exemple définit aussi les propriétés FirstDayOfWeek, MaxDate, MinDate et MaxSelectionCount pour modifier le format du calendrier. Les événements DateSelected et DateChanged sont également gérés et leur état est affiché sur le formulaire.
Imports System Imports System.Drawing Imports System.Windows.Forms Public NotInheritable Class Form1 Inherits System.Windows.Forms.Form Friend WithEvents MonthCalendar1 As System.Windows.Forms.MonthCalendar Friend WithEvents TextBox1 As System.Windows.Forms.TextBox <System.STAThread()> _ Public Shared Sub Main() System.Windows.Forms.Application.Run(New Form1) End Sub 'Main Public Sub New() MyBase.New() Me.TextBox1 = New System.Windows.Forms.TextBox Me.TextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.TextBox1.Location = New System.Drawing.Point(48, 488) Me.TextBox1.Multiline = True Me.TextBox1.ReadOnly = True Me.TextBox1.Size = New System.Drawing.Size(824, 32) ' Create the calendar. Me.MonthCalendar1 = New System.Windows.Forms.MonthCalendar ' Set the calendar location. Me.MonthCalendar1.Location = New System.Drawing.Point(47, 16) ' Change the color. Me.MonthCalendar1.BackColor = System.Drawing.SystemColors.Info Me.MonthCalendar1.ForeColor = System.Drawing.Color.FromArgb( _ CType(192, System.Byte), CType(0, System.Byte), CType(192, System.Byte)) Me.MonthCalendar1.TitleBackColor = System.Drawing.Color.Purple Me.MonthCalendar1.TitleForeColor = System.Drawing.Color.Yellow Me.MonthCalendar1.TrailingForeColor = System.Drawing.Color.FromArgb( _ CType(192, System.Byte), CType(192, System.Byte), CType(0, System.Byte)) ' Add dates to the AnnuallyBoldedDates array. Me.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. Me.MonthCalendar1.BoldedDates = New System.DateTime() {New System.DateTime(2002, 9, 26, 0, 0, 0, 0)} ' Add dates to MonthlyBoldedDates array. Me.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. Me.MonthCalendar1.CalendarDimensions = New System.Drawing.Size(4, 3) ' Set the week to begin on Monday. Me.MonthCalendar1.FirstDayOfWeek = System.Windows.Forms.Day.Monday ' Sets the maximum visible date on the calendar to 12/31/2010. Me.MonthCalendar1.MaxDate = New System.DateTime(2010, 12, 31, 0, 0, 0, 0) ' Set the minimum visible date on the calendar to 12/31/2010. Me.MonthCalendar1.MinDate = New System.DateTime(1999, 1, 1, 0, 0, 0, 0) ' Only allow 21 days to be selected at the same time. Me.MonthCalendar1.MaxSelectionCount = 21 ' Set the calendar to move one month at a time when navigating using the arrows. Me.MonthCalendar1.ScrollChange = 1 ' Do not show the "Today" banner. Me.MonthCalendar1.ShowToday = False ' Do not circle today's date. Me.MonthCalendar1.ShowTodayCircle = False ' Show the week numbers to the left of each week. Me.MonthCalendar1.ShowWeekNumbers = True ' Set up how the form should be displayed and add the controls to the form. Me.ClientSize = New System.Drawing.Size(920, 566) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox1, Me.MonthCalendar1}) Me.Text = "Month Calendar Example" End Sub Private Sub monthCalendar1_DateSelected(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected ' Show the start and end dates in the text box. Me.TextBox1.Text = "Date Selected: Start = " + _ e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString() End Sub Private Sub monthCalendar1_DateChanged(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged ' Show the start and end dates in the text box. Me.TextBox1.Text = "Date Changed: Start = " + _ e.Start.ToShortDateString() + " : End = " + e.End.ToShortDateString() End Sub End Class
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(); } }
#using <System.dll> #using <System.Windows.Forms.dll> #using <System.Drawing.dll> using namespace System; using namespace System::Drawing; using namespace System::Windows::Forms; public ref class Form1: public System::Windows::Forms::Form { private: System::Windows::Forms::MonthCalendar^ monthCalendar1; System::Windows::Forms::TextBox^ textBox1; public: Form1() { this->textBox1 = gcnew System::Windows::Forms::TextBox; this->textBox1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle; this->textBox1->Location = System::Drawing::Point( 48, 488 ); this->textBox1->Multiline = true; this->textBox1->ReadOnly = true; this->textBox1->Size = System::Drawing::Size( 824, 32 ); // Create the calendar. this->monthCalendar1 = gcnew System::Windows::Forms::MonthCalendar; // Set the calendar location. this->monthCalendar1->Location = 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. array<System::DateTime>^ temp1 = {System::DateTime( 2002, 4, 20, 0, 0, 0, 0 ),System::DateTime( 2002, 4, 28, 0, 0, 0, 0 ),System::DateTime( 2002, 5, 5, 0, 0, 0, 0 ),System::DateTime( 2002, 7, 4, 0, 0, 0, 0 ),System::DateTime( 2002, 12, 15, 0, 0, 0, 0 ),System::DateTime( 2002, 12, 18, 0, 0, 0, 0 )}; this->monthCalendar1->AnnuallyBoldedDates = temp1; // Add dates to BoldedDates array. array<System::DateTime>^ temp2 = {System::DateTime( 2002, 9, 26, 0, 0, 0, 0 )}; this->monthCalendar1->BoldedDates = temp2; // Add dates to MonthlyBoldedDates array. array<System::DateTime>^ temp5 = {System::DateTime( 2002, 1, 15, 0, 0, 0, 0 ),System::DateTime( 2002, 1, 30, 0, 0, 0, 0 )}; this->monthCalendar1->MonthlyBoldedDates = temp5; // Configure the calendar to display 3 rows by 4 columns of months. this->monthCalendar1->CalendarDimensions = 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 = System::DateTime( 2010, 12, 31, 0, 0, 0, 0 ); // Set the minimum visible date on calendar to 12/31/2010. this->monthCalendar1->MinDate = 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 S"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 += gcnew System::Windows::Forms::DateRangeEventHandler( this, &Form1::monthCalendar1_DateSelected ); this->monthCalendar1->DateChanged += gcnew System::Windows::Forms::DateRangeEventHandler( this, &Form1::monthCalendar1_DateChanged ); // Set up how the form should be displayed and add the controls to the form. this->ClientSize = System::Drawing::Size( 920, 566 ); array<System::Windows::Forms::Control^>^temp0 = {this->textBox1,this->monthCalendar1}; this->Controls->AddRange( temp0 ); 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 = String::Format( "Date Selected: Start = {0} : End = {1}", e->Start.ToShortDateString(), e->End.ToShortDateString() ); } void monthCalendar1_DateChanged( Object^ /*sender*/, System::Windows::Forms::DateRangeEventArgs^ e ) { // Show the start and end dates in the text box. this->textBox1->Text = String::Format( "Date Changed: Start = {0} : End = {1}", e->Start.ToShortDateString(), e->End.ToShortDateString() ); } }; [STAThread] int main() { Application::Run( gcnew Form1 ); }
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
Hiérarchie d'héritageSystem.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.MonthCalendar
Sécurité des threads
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Remarque
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ