MonthCalendar.TrailingForeColor Proprietà

Definizione

Ottiene o imposta un valore che indica il colore dei giorni per i mesi non interamente visualizzati nel controllo.

public:
 property System::Drawing::Color TrailingForeColor { System::Drawing::Color get(); void set(System::Drawing::Color value); };
public System.Drawing.Color TrailingForeColor { get; set; }
member this.TrailingForeColor : System.Drawing.Color with get, set
Public Property TrailingForeColor As Color

Valore della proprietà

Oggetto Color. Il valore predefinito è Gray.

Eccezioni

Il valore non è un valore Color valido.

Esempio

Nell'esempio di codice seguente viene visualizzato un modulo contenente un controllo che visualizza un MonthCalendar anno di calendario. Nell'esempio viene illustrata l'impostazione delle BackColorproprietà , TitleForeColorCalendarDimensionsForeColorTitleBackColore TrailingForeColor per personalizzare l'aspetto del controllo calendario. Altre proprietà, AnnuallyBoldedDatesad esempio , BoldedDatese MonthlyBoldedDates sono impostate per personalizzare le date in grassetto. L'esempio imposta anche le FirstDayOfWeekproprietà , , MaxDateMinDatee MaxSelectionCount per modificare il formato del calendario. Gli DateSelected eventi e DateChanged vengono gestiti anche e lo stato viene visualizzato nel modulo.

#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

Commenti

Quando viene visualizzato il calendario, alcune date precedono e alcuni seguono i mesi che vengono visualizzati completamente. Usando la TrailingForeColor proprietà, è possibile modificare il colore del testo per tali date.

A partire da Windows Vista e a seconda del tema, l'impostazione di questa proprietà potrebbe non modificare l'aspetto del calendario. Ad esempio, se Windows è impostato per usare il tema Aero, l'impostazione di questa proprietà 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 del sistema operativo corrente. Se si vuole usare questa 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 il Designer progetto e deselezionare la casella di controllo Abilita stili di visualizzazione XP. Per disabilitare gli stili di visualizzazione in C#, aprire Program.cs e aggiungere commenti Application.EnableVisualStyles();.

Si applica a