MonthCalendar.DateChanged 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生於 MonthCalendar 中選取的日期變更時。
public:
event System::Windows::Forms::DateRangeEventHandler ^ DateChanged;
public event System.Windows.Forms.DateRangeEventHandler DateChanged;
public event System.Windows.Forms.DateRangeEventHandler? DateChanged;
member this.DateChanged : System.Windows.Forms.DateRangeEventHandler
Public Custom Event DateChanged As DateRangeEventHandler
事件類型
範例
下列程式碼範例會 SelectionRange 建立 、設定其 Start 和 End 屬性,並將 指派 SelectionRange 給 SelectionRange 控制項的 MonthCalendar 屬性。 DateChanged引發事件時, Start 和 End 屬性值會顯示在文字方塊中。 此範例會要求您具有 Form 具有兩 TextBox 個 Button 控制項的 , 和 MonthCalendar 控制項。
private:
void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Create a SelectionRange object and set its Start and End properties.
SelectionRange^ sr = gcnew SelectionRange;
sr->Start = DateTime::Parse( this->textBox1->Text );
sr->End = DateTime::Parse( this->textBox2->Text );
/* Assign the SelectionRange object to the
SelectionRange property of the MonthCalendar control. */
this->monthCalendar1->SelectionRange = sr;
}
void monthCalendar1_DateChanged( Object^ /*sender*/, DateRangeEventArgs^ /*e*/ )
{
/* Display the Start and End property values of
the SelectionRange object in the text boxes. */
this->textBox1->Text = monthCalendar1->SelectionRange->Start.Date.ToShortDateString();
this->textBox2->Text = monthCalendar1->SelectionRange->End.Date.ToShortDateString();
}
private void button1_Click(object sender, System.EventArgs e)
{
// Create a SelectionRange object and set its Start and End properties.
SelectionRange sr = new SelectionRange();
sr.Start = DateTime.Parse(this.textBox1.Text);
sr.End = DateTime.Parse(this.textBox2.Text);
/* Assign the SelectionRange object to the
SelectionRange property of the MonthCalendar control. */
this.monthCalendar1.SelectionRange = sr;
}
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
/* Display the Start and End property values of
the SelectionRange object in the text boxes. */
this.textBox1.Text =
monthCalendar1.SelectionRange.Start.Date.ToShortDateString();
this.textBox2.Text =
monthCalendar1.SelectionRange.End.Date.ToShortDateString();
}
Private Sub button1_Click(sender As Object, _
e As EventArgs) Handles button1.Click
' Create a SelectionRange object and set its Start and End properties.
Dim sr As New SelectionRange()
sr.Start = DateTime.Parse(Me.textBox1.Text)
sr.End = DateTime.Parse(Me.textBox2.Text)
' Assign the SelectionRange object to the
' SelectionRange property of the MonthCalendar control.
Me.monthCalendar1.SelectionRange = sr
End Sub
Private Sub monthCalendar1_DateChanged(sender As Object, _
e As DateRangeEventArgs) Handles monthCalendar1.DateChanged
' Display the Start and End property values of
' the SelectionRange object in the text boxes.
Me.textBox1.Text = monthCalendar1.SelectionRange.Start.Date.ToShortDateString()
Me.textBox2.Text = monthCalendar1.SelectionRange.End.Date.ToShortDateString()
End Sub
下列程式碼範例會顯示表單,其中包含 MonthCalendar 顯示一個日曆年度的控制項。 此範例示範如何設定 BackColor 、 ForeColor 、 TitleBackColorTitleForeColor 、、 CalendarDimensions 和 TrailingForeColor 屬性,以自訂行事曆控制項的外觀。 、 和 MonthlyBoldedDates 等其他 AnnuallyBoldedDatesBoldedDates 屬性會設定為自訂哪些日期為粗體。 此範例也會設定 FirstDayOfWeek 、 MaxDate 、 MinDate 和 MaxSelectionCount 屬性來變更行事曆格式。 DateSelected也會處理 和 DateChanged 事件,而且其狀態會顯示在表單上。
#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 );
}
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();
}
}
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
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
備註
事件 DateChanged 會在任何日期選取期間發生,無論是透過滑鼠、鍵盤或程式碼。 事件 DateSelected 很類似,但只會發生在使用滑鼠進行之日期選取範圍的結尾。
如需處理事件的詳細資訊,請參閱 處理和引發事件。